Re: [PATCHv2.1] t6500: wait for detached auto gc at the end of the test script
- Date: Thu, 13 Apr 2017 12:44:51 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [PATCHv2.1] t6500: wait for detached auto gc at the end of the test script
On Thu, Apr 13, 2017 at 12:31:38PM +0200, SZEDER Gábor wrote:
> Note, that this fd trickery doesn't work on Windows, because due to
> MSYS limitations the git process only inherits the standard fds 0, 1
> and 2 from the shell. Luckily, it doesn't matter in this case,
> because on Windows daemonize() is basically a noop, thus 'git gc
> --auto' always runs in the foreground.
> And since we can now continue the test reliably after the detached gc
> finished, check that there is only a single packfile left at the end,
> i.e. that the detached gc actually did what it was supposed to do.
> Also add a comment at the end of the test script to warn developers of
> future tests about this issue of long running detached gc processes.
The whole thing looks nicely explained, and I'm happy that we're able to
reliably add this extra check at the end of the test.
I did wonder what will happen if Windows learns to daemonize() the
auto-gc. I don't think we'll get an immediate test failure, but this
test will become racy again. But this time we'll actually notice the
racy failure, because the "ls" will report extra packs if it runs before
the background gc does. At which point we can revisit this.
It would be nice if there were a non-racy way to detect whether we
daemonized or not, and complain on Windows when we do. Then we'll be
notified immediately when daemonize() changes by the test failure,
rather than waiting for a racy failure.
I guess we could probably grep for the "in the background" message from
the parent gc. OTOH, maybe it is not even worth it. The racy version
should fail reasonably promptly, I think, and the comments you've left
would point any investigator in the right direction.