]> source.dussan.org Git - jgit.git/commit
Don't delete .idx file if .pack file can't be deleted 64/18264/2
authorChristian Halstrick <christian.halstrick@sap.com>
Mon, 11 Nov 2013 09:57:46 +0000 (10:57 +0100)
committerChristian Halstrick <christian.halstrick@sap.com>
Wed, 13 Nov 2013 07:59:43 +0000 (08:59 +0100)
commit8da939221c2e244fe0ba979fa8419a90bf618315
tree6e311d6d0f60adf456c0bf340419850820bf3b81
parentf1c086f692cb1e53a075af16ae662f150443682e
Don't delete .idx file if .pack file can't be deleted

If during an garbage collection old packfiles are deleted it could
happen that on certain platforms the index file can be deleted but the
packfile can't be deleted (because someone locked the file). This led
to repositories with packfiles without corresponding index files. Those
zombie-packfiles potentially consume a lot of space on disk and it is
never tried to delete them again. Try to avoid this situation by
deleting packfiles first and don't try to delete the other files if we
can't delete the packfile. This gives us the chance to delete the
packfile during next GC.

This commit only improves the situation - there is still the chance for
orphan files during packfile deletion. We don't have an atomic delete
of multiple files .

Change-Id: I0a19ae630186f07d0cc7fe9df246fa1cedeca8f6
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GCTest.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java