Re: [PATCH v1 2/2] add "ok=sigpipe" to test_must_fail and use it to fix flaky tests
On 28 Nov 2015, at 18:10, Jeff King <peff@peff.net> wrote:
Show 27 quoted lines
> On Fri, Nov 27, 2015 at 10:15:14AM +0100, larsxschneider@gmail.com wrote:
>
>> From: Lars Schneider <larsxschneider@gmail.com>
>>
>> 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