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

Re: git repack on shallow clone of large repo (linux kernel) hangs at "Enumerating objects"

From
Bagas Sanjaya <bagasdotme@gmail.com>
Date
May 22, 2021, 11:16 UTC
Message-ID
<168567f7-cec1-a4f1-5b2e-b51637ab7668@gmail.com>
In-Reply-To
<YKOuHLWmJ3jktpyA@coredump.intra.peff.net>
Hi Jeff, sorry for long reply.
On 18/05/21 19.07, Jeff King wrote:
Show 7 quoted lines
> You need "strace -f". The parent repack process spawns pack-objects (via
> the clone() call above), and then waits for it to print the name of the
> generated pack at the end. So it will stall on that read() for quite a
> while, even under normal circumstances.
> 
> -Peff
> 
Now on my clone, git count-objects -v says:
Show 8 quoted lines
> count: 0
> size: 0
> in-pack: 3469192
> packs: 7
> size-pack: 2181233
> prune-packable: 0
> garbage: 0
> size-garbage: 0
And I have 60211 commits, with the oldest tag available is v3.15-rc3.
Here is excerpt from strace -f just before I triggered SIGINT due to hang:
Show 22 quoted lines
> 22903 openat(AT_FDCWD, ".git/objects/3b/tmp_obj_24pz93", O_RDWR|O_CREAT|O_EXCL, 0444) = 3
> 22903 write(3, "x\1+)JMU0421d040031Q\320K\316I\314K\327M\313/\312M,"..., 1113) = 1113
> 22903 close(3)                          = 0
> 22903 utime(".git/objects/3b/tmp_obj_24pz93", {actime=1621599665 /* 2021-05-21T19:21:05+0700 */, modtime=1621599665 /* 2021-05-21T19:21:05+0700 */}) = 0
> 22903 link(".git/objects/3b/tmp_obj_24pz93", ".git/objects/3b/816f00a02062692e95a9a756247fca34abb911") = 0
> 22903 unlink(".git/objects/3b/tmp_obj_24pz93") = 0
> 22903 access(".git/objects/3b/819396230eda4ce9be9fbb2c91c13ebb28e8d3", F_OK) = -1 ENOENT (No such file or directory)
> 22903 getpid()                          = 22903
> 22903 openat(AT_FDCWD, ".git/objects/3b/tmp_obj_yrHAe4", O_RDWR|O_CREAT|O_EXCL, 0444) = 3
> 22903 write(3, "x\1\224}y<\324\337\367\377(\205\262E\226\262D\205T\0233\214=\n!\25\205R\22\306\314`"..., 4096) = 4096
> 22903 write(3, "\365\16\236\215!&\37 \v\300\240\334\33r\266/_\317Hg,\333\356w\366\235\307\245<E\347\t"..., 4096) = 4096
> 22903 write(3, "\362\367\267\224Pc\207\252!\240$\"\26\212\204\22\2315\245\255\357j\373f\316G9\352[\r!\326"..., 4096) = 4096
> 22903 write(3, "\305\vC3\253\217\343\17kl>v\200_\226Y\206\247\21@\327mi\310\177{7{i\214w\243"..., 4096) = 4096
> 22903 write(3, "@X\17\213\304\307z\232v\355\313y\316,\342\202p\"\343|x\306\306<\335DM\350\315!m\207"..., 4096) = 4096
> 22903 write(3, "'\253R\33\267\310p\3\332\201\333\316\254'\3114\347\277\0321\35\223\314i\255v\252X{[r\33"..., 4096) = 4096
> 22903 write(3, "\261\341a\252\355\360\356\340\375A$\214\377\336O\311A\215\327\5g2\\\324\332\276\363\323\306S\215\342"..., 4096) = 4096
> 22903 write(3, "s_n83S\326\224]H\271\246-\267\35\32\234\6s!\273\177\30\256k\\eW\355E\264^"..., 4096) = 4096
> 22903 write(3, "E\0266\37\30244Mtk9\310\305\227\370\245\355qwUi\363\237\302\347S\4Xp\342\330\370"..., 4096) = 4096
> 22903 write(3, "v\267\303B\177\232v{\342\353\1\340A\205[\336\266\250_e\346\347e)\212^\241]\263\233\270\323"..., 4096) = 4096
> 22903 write(3, "\325dA\266\333\221\274\32\367\277\271nh\327\276\272C\323-E\242\351\232\352\303]|\335\227\227\200\301"..., 4096 <unfinished ...>
> 22902 <... read resumed>0x5594d878b7b0, 4096) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
> 22903 <... write resumed>)              = 4096
The last write() sequence seems running repeatedly, what it means? Infinite loop?
-- 
An old man doll... just what I always wanted! - Clara
Previous: Jeff KingNext: Jeff King
Message 5 of 6 in “git repack on shallow clone of large repo (linux kernel) hangs at "Enumerating objects"”
  1. Bagas SanjayaMay 16, 2021
  2. Jeff KingMay 17, 2021
  3. Bagas SanjayaMay 18, 2021
  4. Jeff KingMay 18, 2021
  5. Bagas SanjayaMay 22, 2021
  6. Jeff KingMay 22, 2021

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.