git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v1 2/2] add "ok=sigpipe" to test_must_fail and use it to fix flaky tests

From
Jeff King <peff@peff.net>
Date
Nov 28, 2015, 17:10 UTC
Message-ID
<20151128171004.GC27264@sigill.intra.peff.net>
In-Reply-To
<1448615714-43768-3-git-send-email-larsxschneider@gmail.com>
On Fri, Nov 27, 2015 at 10:15:14AM +0100, larsxschneider@gmail.com wrote:
Show 12 quoted lines
> 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.
-Peff
Previous: larsxschneider@gmail.comNext: Lars Schneider
Message 6 of 7 in “test-must-fail-sigpipe”
  1. 0/2 test-must-fail-sigpipelarsxschneider@gmail.com, Nov 27, 2015
  2. 1/2 implement test_might_fail using a refactored test_must_faillarsxschneider@gmail.com, Nov 27, 2015
  3. Ramsay JonesNov 27, 2015
  4. Jeff KingNov 28, 2015
  5. 2/2 add "ok=sigpipe" to test_must_fail and use it to fix flaky testslarsxschneider@gmail.com, Nov 27, 2015
  6. Jeff KingNov 28, 2015
  7. Lars SchneiderDec 1, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.