]> Sergey Matveev's repositories - public-inbox.git/commit
git: unconditional expiry
authorEric Wong <e@80x24.org>
Sat, 1 Jun 2019 00:20:51 +0000 (00:20 +0000)
committerEric Wong <e@80x24.org>
Sat, 1 Jun 2019 07:38:49 +0000 (07:38 +0000)
commite48187f2ca08612e1eb1f987caa9cd5be48be27a
tree6f30fc670250f3cad35a7cac3fa2bc94652d08e4
parent2c5ef3910834b1a931bc83d294181dc6baddddd3
git: unconditional expiry

A constant stream of traffic to either httpd/nntpd would mean
git-cat-file processes never expire.  Things can go bad after a
full repack, as a full repack will unlink old pack indices and
git-cat-file does not currently detect unlinked files.

We could do something complicated by recursively stat-ing
objects/pack of every git directory and alternate;
but that's probably not worth the trouble compared to
occasionally restarting the cat-file process.

So simplify the code and let httpd/nntpd expire them
periodically, since spawning a "git-cat-file --batch" process
isn't too expensive.  We already spawn for every request which
hits git-http-backend, cgit, and git-apply.

In the future, we may optionally support the Git::Raw module
to avoid IPC; but we must remain careful to not leave lingering
FDs open to unlinked files after repack.
lib/PublicInbox/Git.pm
lib/PublicInbox/Inbox.pm
t/git.t