Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [BUG] unpack-objects abnormal exit when pushing

From: Matthieu Moy <hidden>
Date: 2016-06-15 22:47:41

Hi again,

I just found a way to reproduce the problem using plain SSH, and not
Git:

$ ssh localhost cat < random.bin | wc
    249    1460   65536
$ cat < random.bin | wc
    796    4545  204800

So, sshd is broken on this machine, and I don't think Git is the one
to blame.

Matthieu Moy [off-list ref] writes:
Hi,

I'm hitting a bug when git-push-ing to a Linux PPC machine. In
general, pushing works well, but pushing some particular commits
breaks reproducibly with :

fatal: early EOF
error: unpack failed: unpack-objects abnormal exit
To ssh://localhost//home/perms/moy/prive/dest
 ! [remote rejected] master -> master (n/a (unpacker error))

I've put the guilty files on my website and wrote a reproduction
script:

#!/bin/sh

rm -fr source dest
git init source
git init --bare dest
dest=$PWD/dest
cd source
echo foo > bar.txt
git add .
git commit -m init
git push ssh://localhost/$dest master
wget 'http://www-verimag.imag.fr/~moy/tmp/git-bug/Conception Manual.docx'
wget 'http://www-verimag.imag.fr/~moy/tmp/git-bug/Extreme Programming.doc'
git add .
git commit -m "bug"
git push ssh://localhost/$dest master

The full output is attached (the error message for the last push is
given above). The machine on which I get this (let's call it "A")
says :

$ ssh -Version
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
$ uname -a
Linux A 2.6.18-128.7.1.el5 #1 SMP Wed Aug 19 04:08:13 EDT 2009 ppc64 ppc64 ppc64 GNU/Linux
$ cat /etc/redhat-release                                                                                                                                           
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
(it's a 32-bit distribution although the machine is 64bits)
$ git --version
git version 1.6.5.2
(compiled myself, "make test" passes)

According to my experiments, the problem is on the receiver side. If I
do the same as above, with source/ and dest/ directories on two
different machines, then if source/ in on A and dest/ anywhere else,
it works, and if dest/ is on machine A, I get the same error.

If I push using "file://" instead of "ssh://", then everything works
well.

If instead of push-ing, I go to dest/ and do a fetch, then it works
well too.

Does anyone have any idea on what's going on?

If anyone has a machine similar to mine (ppc64), can he/she run my
reproduction script and tell me if the bug happens?

Thanks a lot,
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help