Re: [BUG] auto-repack exits prematurely, locking other processing out
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 23, 2014, 21:40 UTC
- Message-ID
- <xmqqy4xsgome.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20140523195121.GA923@angband.pl>
Adam Borowski <kilobyte@angband.pl> writes:
> Hi guys! > > It looks like the periodic auto-repack backgrounds itself when it shouldn't > do so. This causes the command it has triggered as a part of to fail:
Yikes. In the meantime, I think you can turn gc.autodetach off as a workaround, e.g.
$ git config --global --add gc.autodetach off
Duy, 9f673f94 (gc: config option for running --auto in background, 2014-02-08) turns to be not such a hot idea. Sure, if we kick it off background after doing something heavy, immediately before giving control back to the end-user, and expect that the user will stay thinking without making new changes (i.e. read-only stuff like "git show" would be OK), then daemonize might be a great thing, but we forgot, while doing that commit, that long-running operations trigger the auto gc in the middle *and* they want it finish before they continue, as the purpose of gc is to help the performance during their further operation.
Show 23 quoted lines
> > ========================================================================== > [~/linux](master)$ git pull --rebase > remote: Counting objects: 455, done. > remote: Compressing objects: 100% (64/64), done. > remote: Total 267 (delta 208), reused 262 (delta 203) > Receiving objects: 100% (267/267), 44.43 KiB | 0 bytes/s, done. > Resolving deltas: 100% (208/208), completed with 80 local objects. > From git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux > 4b660a7..f02f79d master -> linus/master > Auto packing the repository in background for optimum performance. > See "git help gc" for manual housekeeping. > First, rewinding head to replay your work on top of it... > Applying: perf: tools: fix missing casts for printf arguments. > Applying: vt: emulate 8- and 24-bit colour codes. > fatal: Unable to create '/home/kilobyte/linux/.git/refs/heads/master.lock': File exists. > > If no other git process is currently running, this probably means a > git process crashed in this repository earlier. Make sure no other git > process is running and remove the file manually to continue. > Could not move back to refs/heads/master > [~/linux]((no branch, rebasing (null)))$ > ==========================================================================