git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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)))$
> ==========================================================================
Previous: Adam BorowskiNext: Adam Borowski
Message 2 of 8 in “[BUG] auto-repack exits prematurely, locking other processing out”
  1. Adam BorowskiMay 23, 2014
  2. Junio C HamanoMay 23, 2014
  3. Adam BorowskiMay 23, 2014
  4. Junio C HamanoMay 23, 2014
  5. Duy NguyenMay 24, 2014
  6. gc --auto: do not lock refs in the backgroundNguyễn Thái Ngọc Duy, May 25, 2014
  7. Duy NguyenMay 25, 2014
  8. Junio C HamanoMay 27, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.