* Release output locks as soon as possible, not when the destructor of
the DerivationGoal runs. Otherwise, if a goal is a top-level goal, then the lock won't be released until nix-store finishes. With --keep-going and lots of top-level goals, it's possible to run out of file descriptors (this happened sometimes in the build farm for Nixpkgs). Also, for failed derivation, it won't be possible to build it again until the lock is released. * Idem for locks on build users: these weren't released in a timely manner for failed top-level derivation goals. So if there were more than (say) 10 such failed builds, you would get an error about having run out of build users.
This commit is contained in:
		
							parent
							
								
									2ef579d1aa
								
							
						
					
					
						commit
						824b154ce8
					
				
					 3 changed files with 14 additions and 0 deletions
				
			
		|  | @ -36,6 +36,7 @@ public: | |||
|     void lockPaths(const PathSet & _paths, | ||||
|         const string & waitMsg = ""); | ||||
|     ~PathLocks(); | ||||
|     void unlock(); | ||||
|     void setDeletion(bool deletePaths); | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue