git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Matthias Fechner <idefix@fechner.net>
Cc: git@vger.kernel.org
Subject: Re: Cannot push a commit
Date: Mon, 16 Jan 2012 16:20:36 -0500	[thread overview]
Message-ID: <20120116212036.GA21132@sigill.intra.peff.net> (raw)
In-Reply-To: <4F1297E0.1060703@fechner.net>

On Sun, Jan 15, 2012 at 10:09:52AM +0100, Matthias Fechner wrote:

> git.exe push --progress  "origin" master:master
> 
> Counting objects: 4, done.
> Compressing objects: 100% (3/3)
> Writing objects: 100% (3/3), 80.00 KiB | 137 KiB/s
> Writing objects: 100% (3/3), 91.63 KiB | 137 KiB/s, done.
> Total 3 (delta 0), reused 0 (delta 0)
> fatal: early EOF
> error: unpack failed: unpack-objects abnormal exit
> To idefix@fechner.net:git-test
> ! [remote rejected] master -> master (n/a (unpacker error))
> error: failed to push some refs to 'idefix@fechner.net:git-test'

Odd. The unpacking process on the other end claims that it didn't get
the whole input (it knows how much to expect based on the earlier parts
of what is sent) . Yet the connection is still going (because we see the
error messages coming from the remote), so it wasn't simply that the
connection was dropped.  So either:

  1. Something in the connection cut out but only in a half-duplex way.
     I guess I could see ssh doing that if its input pipe closed, but
     that would mean the local pack-objects failed, and I believe git
     already detects and reports that case.

  2. The packfile sent indicated that it should have more bytes than it
     does (i.e., either git indicated there were more objects than there
     actually are, or zlib failed to give a stream-end marker in the
     middle of an object). This is one of:

     a. A bug in git or zlib.

     b. Something in the connection corrupting the data (e.g., a
        transport that is not 8-bit clean).

But in either 2a or 2b, I would expect us to have seen this before, and
I don't recall seeing anything like it.

You could try generating a bundle with this pack, like:

  git bundle create foo.bundle master ^origin/master

and then shipping the resulting foo.bundle to the other side, and
pulling from it like:

  git pull /path/to/foo.bundle master

That should use (roughly) the same pack generation code as the
push, but avoid the transport. If it works, then it's either a problem
with the transport, or there is something really subtle going on
inside git.

If it does fail, then that will be a much easier case to repeat and
diagnose from there.

-Peff

  parent reply	other threads:[~2012-01-16 21:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-15  9:09 Cannot push a commit Matthias Fechner
2012-01-16 18:59 ` Matthias Fechner
2012-01-16 21:20 ` Jeff King [this message]
2012-01-17  7:35   ` Matthias Fechner
2012-01-18 18:25     ` Matthias Fechner
2012-01-19  2:09       ` Jeff King
2012-01-24  6:53         ` Matthias Fechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120116212036.GA21132@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=idefix@fechner.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).