From: Lars Schneider Date: Tue, 01 Dec 2015 09:05:21 GMT Subject: Re: [PATCH v1 2/2] add "ok=sigpipe" to test_must_fail and use it to fix flaky tests Message-ID: <990EBE4C-C71F-4F3F-933F-A070D69C94B0@gmail.com> In-Reply-To: <20151128171004.GC27264@sigill.intra.peff.net> On 28 Nov 2015, at 18:10, Jeff King wrote: > On Fri, Nov 27, 2015 at 10:15:14AM +0100, larsxschneider@gmail.com wrote: > >> From: Lars Schneider >> >> t5516 "75 - deny fetch unreachable SHA1, allowtipsha1inwant=true" is >> flaky in the following case: >> 1. remote upload-pack finds out "not our ref" >> 2. remote sends a response and closes the pipe >> 3. fetch-pack still tries to write commands to the remote upload-pack >> 4. write call in wrapper.c dies with SIGPIPE >> >> t5504 "9 - push with transfer.fsckobjects" is flaky, too, and returns >> SIGPIPE once in a while. I had to remove the final "To dst..." output >> check because there is no output if the process dies with SIGPUPE. > > s/PUPE/PIPE/ :) > > I think it would be nice for future readers to understand a bit better > _why_ this is flaky, and why the fix is to the test suite and not to git > itself. I added this paragraph in between the two above: > > The test is flaky because the sending fetch-pack may or may not have > finished writing its output by step (3). If it did, then we see a > closed pipe on the next read() call. If it didn't, then we get the > SIGPIPE from step (4) above. Both are fine, but the latter fools > test_must_fail. > Sounds good! Thank you :-) - Lars