comment and todo
This commit is contained in:
		
					parent
					
						
							
								d330c83e2c
							
						
					
				
			
			
				commit
				
					
						94216c99a7
					
				
			
		
					 2 changed files with 58 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
[[!comment format=mdwn
 | 
			
		||||
 username="joey"
 | 
			
		||||
 subject="""comment 6"""
 | 
			
		||||
 date="2022-09-21T17:42:44Z"
 | 
			
		||||
 content="""
 | 
			
		||||
Gus, did you manage to recover from the situation?
 | 
			
		||||
 | 
			
		||||
I did some experimenting to see what it looks like when this happens.
 | 
			
		||||
Here I am in a filesystem with 76 mb free, and annex.diskreserve is set to
 | 
			
		||||
75 mb. The "big" file is 100 mb in size:
 | 
			
		||||
 | 
			
		||||
	joey@darkstar:~/mnt/r2>git pull
 | 
			
		||||
	remote: Enumerating objects: 5, done.
 | 
			
		||||
	remote: Counting objects: 100% (5/5), done.
 | 
			
		||||
	remote: Compressing objects: 100% (3/3), done.
 | 
			
		||||
	remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
 | 
			
		||||
	Unpacking objects: 100% (3/3), 328 bytes | 328.00 KiB/s, done.
 | 
			
		||||
	From /home/joey/tmp/bench/r
 | 
			
		||||
	   2dc7cd3..3699920  master     -> origin/master
 | 
			
		||||
	Updating 2dc7cd3..3699920
 | 
			
		||||
	Fast-forward
 | 
			
		||||
	 big | 2 +-
 | 
			
		||||
	 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
	 mode change 120000 => 100644 big
 | 
			
		||||
	  not enough free space, need 100.99 MB more (use --force to override this check or adjust annex.diskreserve)
 | 
			
		||||
	  not enough free space, need 101 MB more (use --force to override this check or adjust annex.diskreserve)
 | 
			
		||||
	git-annex: unable to populate worktree file ./big
 | 
			
		||||
	  not enough free space, need 101.02 MB more (use --force to override this check or adjust annex.diskreserve)
 | 
			
		||||
	git-annex: git status will show big to be modified, since content availability has changed and git-annex was unable to update the index. This is only a cosmetic problem affecting git status; git add, git commit, etc won't be affected. To fix the git status display, you can run: git update-index -q --refresh big
 | 
			
		||||
	  not enough free space, need 101.02 MB more (use --force to override this check or adjust annex.diskreserve)
 | 
			
		||||
	git-annex: git status will show big to be modified, since content availability has changed and git-annex was unable to update the index. This is only a cosmetic problem affecting git status; git add, git commit, etc won't be affected. To fix the git status display, you can run: git update-index -q --refresh big
 | 
			
		||||
 | 
			
		||||
So git-annex avoids filling up the entire disk in this situation
 | 
			
		||||
when annex.diskreserve is configured. I suppose that you don't have
 | 
			
		||||
it configured, so it defaulted to only 1 mb -- and then other
 | 
			
		||||
things than unlocked files used up that remaining space.
 | 
			
		||||
 | 
			
		||||
I've opened to todo that would have avoided the worst of
 | 
			
		||||
your experience:
 | 
			
		||||
[[todo/prevent_pulling_unlocked_files_using_all_disk_space_by_default]].
 | 
			
		||||
"""]]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
As seen in [[forum/Not_enough_free_space]], pulling
 | 
			
		||||
a commit that unlocks a lot of large files whose content is present in the
 | 
			
		||||
repository can result in an unexpected doubling of the disk space used by
 | 
			
		||||
git-annex.
 | 
			
		||||
 | 
			
		||||
annex.diskreserve avoids that using up the entire disk, but it's not
 | 
			
		||||
uncommon for users to not have it set, and the 1 mb default can easily
 | 
			
		||||
be eaten up by other non-object uses of disk.
 | 
			
		||||
 | 
			
		||||
Perhaps 1 mb is too small for the default for annex.diskreserve. Even
 | 
			
		||||
10 or 100 mb would leave a lot more margin for other minor uses of disk space.
 | 
			
		||||
 | 
			
		||||
Perhaps there could be another config like annex.diskreserve but that
 | 
			
		||||
applies only to populating unlocked files. It could default to some larger
 | 
			
		||||
size, like 1 gb. Probably most users are not going to want to populate
 | 
			
		||||
unlocked files when their disk space gets that low. Although, the same
 | 
			
		||||
could be argued about just getting files. --[[Joey]]
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue