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

[BUG] push sometimes omits status table when remote dies

From
Jeff King <peff@peff.net>
Date
Jan 7, 2017, 08:48 UTC
Message-ID
<20170107084843.w3psqobh4yq6t6zb@sigill.intra.peff.net>

If I run t5504 under heavy load, it sometimes fails tests 8 and 9, which make a broken push to the remote. The failure looks like this:

    expecting success: 
            rm -rf dst &&
            git init dst &&
            (
                    cd dst &&
                    git config transfer.fsckobjects true
            ) &&
            test_must_fail git push --porcelain dst master:refs/heads/test >act &&
            test_cmp exp act
    
    Initialized empty Git repository in /var/ram/git-stress/root-13/trash directory.t5504-fetch-receive-strict/dst/.git/
    remote: fatal: object of unexpected type        
    error: failed to push some refs to 'dst'
    --- exp 2017-01-07 08:44:24.465771756 +0000
    +++ act 2017-01-07 08:44:24.493771755 +0000
    @@ -1,2 +0,0 @@
    -To dst
    -!      refs/heads/master:refs/heads/test       [remote rejected] (unpacker error)
    not ok 9 - push with transfer.fsckobjects

So it looks like we correctly fail the push, but the expected porcelain output is missing. I'm _guessing_ what happens is that the local git-push sees SIGPIPE writing to the remote side, and dies before it gets a chance to write the message.

I'm not sure if this is something we should be fixing, or if the test is simply a bit flaky (and we should work around it).

-Peff
Message 1 of 1 in “[BUG] push sometimes omits status table when remote dies”
  1. Jeff KingJan 7, 2017

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.