diff options
author | Eric Wong <e@80x24.org> | 2019-06-01 00:20:51 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-06-01 07:38:49 +0000 |
commit | e48187f2ca08612e1eb1f987caa9cd5be48be27a (patch) | |
tree | 6f30fc670250f3cad35a7cac3fa2bc94652d08e4 /t | |
parent | 2c5ef3910834b1a931bc83d294181dc6baddddd3 (diff) | |
download | public-inbox-e48187f2ca08612e1eb1f987caa9cd5be48be27a.tar.gz |
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.
Diffstat (limited to 't')
-rw-r--r-- | t/git.t | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -143,8 +143,7 @@ if ('alternates reloaded') { my $config = eval { local $/; <$fh> }; is($$found, $config, 'alternates reloaded'); - ok($gcf->cleanup(time - 30), 'cleanup did not expire'); - ok(!$gcf->cleanup(time + 30), 'cleanup can expire'); + ok(!$gcf->cleanup, 'cleanup can expire'); ok(!$gcf->cleanup, 'cleanup idempotent'); my $t = $gcf->modified; |