# weird fatal on push when post-receive hook exists but is empty

3 messages from 2010-04-20 to 2010-04-21. Participants: Sitaram Chamarty, Michael J Gruber, Johannes Sixt.
Thread: https://gitlist.dev/t/23538

## Sitaram Chamarty, 2010-04-20 16:21

Subject: weird fatal on push when post-receive hook exists but is empty
Message-ID: <g2x2e24e5b91004200921mc5b0ffoc1c1ec2af25f71c@mail.gmail.com>
URL: https://gitlist.dev/e/g2x2e24e5b91004200921mc5b0ffoc1c1ec2af25f71c%40mail.gmail.com

```
Helping someone with what at first appeared to be a gitolite problem,
we found something curious.  Here it is, reduced to pure git, even
without ssh and other complications in between:

    21:47:05 sita-lt:t $ rm -rf a b c
    21:47:10 sita-lt:t $ git init --bare b
    Initialized empty Git repository in /home/sitaram/t/b/
    21:47:23 sita-lt:t $ git clone b a
    Initialized empty Git repository in /home/sitaram/t/a/.git/
    warning: You appear to have cloned an empty repository.
    21:47:29 sita-lt:t $ cat > b/hooks/post-receive
    #!/bin/bash
    # dummy
    21:47:55 sita-lt:t $ chmod +x b/hooks/post-receive
    21:48:00 sita-lt:t $ cd a
    21:48:02 sita-lt:a (master) $ date > foo;git add foo; git commit
-m foo; git push origin master
    [master (root-commit) f55bd25] foo
     1 files changed, 1 insertions(+), 0 deletions(-)
     create mode 100644 foo
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 232 bytes, done.
    Total 3 (delta 0), reused 0 (delta 0)
    Unpacking objects: 100% (3/3), done.
    fatal: The remote end hung up unexpectedly
    error: error in sideband demultiplexer
    error: .git/objects/f5/5bd251325ad1647a29869e75a8080fee1a5d97 died
of signal 13
    To /home/sitaram/t/b
     * [new branch]      master -> master
    error: failed to push some refs to '/home/sitaram/t/b'
    (rc=1)21:48:23 sita-lt:a $

Of course, this does not happen when the hook doesn't even exist...

-- 
Sitaram

```

## Michael J Gruber, 2010-04-21 08:46

Subject: Re: weird fatal on push when post-receive hook exists but is empty
Message-ID: <4BCEBB50.7020003@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4BCEBB50.7020003%40drmicha.warpmail.net
In-Reply-To: <g2x2e24e5b91004200921mc5b0ffoc1c1ec2af25f71c@mail.gmail.com>

```
Sitaram Chamarty venit, vidit, dixit 20.04.2010 18:21:
> 21:47:05 sita-lt:t $ rm -rf a b c
>     21:47:10 sita-lt:t $ git init --bare b
>     Initialized empty Git repository in /home/sitaram/t/b/
>     21:47:23 sita-lt:t $ git clone b a
>     Initialized empty Git repository in /home/sitaram/t/a/.git/
>     warning: You appear to have cloned an empty repository.
>     21:47:29 sita-lt:t $ cat > b/hooks/post-receive
>     #!/bin/bash
>     # dummy
>     21:47:55 sita-lt:t $ chmod +x b/hooks/post-receive
>     21:48:00 sita-lt:t $ cd a
>     21:48:02 sita-lt:a (master) $ date > foo;git add foo; git commit
> -m foo; git push origin master
>     [master (root-commit) f55bd25] foo
>      1 files changed, 1 insertions(+), 0 deletions(-)
>      create mode 100644 foo
>     Counting objects: 3, done.
>     Writing objects: 100% (3/3), 232 bytes, done.
>     Total 3 (delta 0), reused 0 (delta 0)
>     Unpacking objects: 100% (3/3), done.
>     fatal: The remote end hung up unexpectedly
>     error: error in sideband demultiplexer
>     error: .git/objects/f5/5bd251325ad1647a29869e75a8080fee1a5d97 died
> of signal 13
>     To /home/sitaram/t/b
>      * [new branch]      master -> master
>     error: failed to push some refs to '/home/sitaram/t/b'
>     (rc=1)21:48:23 sita-lt:a $

With git version 1.7.1.rc1.248.gcefbb and this script:

#!/bin/bash
rm -rf a b c
git init --bare b
git clone b a
cat > b/hooks/post-receive <<EOF
#!/bin/bash
# dummy
EOF
chmod +x b/hooks/post-receive
cd a
date > foo;git add foo; git commit -m foo; git push origin master

I get this output:
Initialized empty Git repository in /tmp/t/b/
Initialized empty Git repository in /tmp/t/a/.git/
warning: You appear to have cloned an empty repository.
[master (root-commit) 020a1fb] foo
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 foo
Counting objects: 3, done.
Writing objects: 100% (3/3), 241 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /tmp/t/b
 * [new branch]      master -> master

What are we doing differently?

Michael

```

## Johannes Sixt, 2010-04-21 09:28

Subject: Re: weird fatal on push when post-receive hook exists but is empty
Message-ID: <4BCEC532.5040807@viscovery.net>
URL: https://gitlist.dev/e/4BCEC532.5040807%40viscovery.net
In-Reply-To: <4BCEBB50.7020003@drmicha.warpmail.net>

```
Am 4/21/2010 10:46, schrieb Michael J Gruber:
> What are we doing differently?

Your box has a different scheduler. I doesn't run (or exit) the script
soon enough that the parent (receive-pack) can get SIGPIPE when it writes
refs to the script's stdin.

-- Hannes

```
