From: Bagas Sanjaya Date: Sat, 22 May 2021 11:16:15 GMT Subject: Re: git repack on shallow clone of large repo (linux kernel) hangs at "Enumerating objects" Message-ID: <168567f7-cec1-a4f1-5b2e-b51637ab7668@gmail.com> In-Reply-To: Hi Jeff, sorry for long reply. On 18/05/21 19.07, Jeff King wrote: > 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: > 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: > 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 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 > 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