# error: error in sideband demultiplexer

3 messages from 2011-06-14 to 2011-06-14. Participants: Richard Shaw, Jeff King, Junio C Hamano.
Thread: https://gitlist.dev/t/27621

## Richard Shaw, 2011-06-14 12:20

Subject: error: error in sideband demultiplexer
Message-ID: <9E9413C214124A0980AADBDFAD7DF28E@aggress.net>
URL: https://gitlist.dev/e/9E9413C214124A0980AADBDFAD7DF28E%40aggress.net

```
Hi,

Could someone please give me an explanation of what the following error message means:

error: error in sideband demultiplexer

I'm seeing this intermittently when pushing up to a remote master with a post-receive hook and want to fix it, but no luck to date.

Thanks in advance

Richard 

```

## Jeff King, 2011-06-14 16:49

Subject: Re: error: error in sideband demultiplexer
Message-ID: <20110614164943.GA26764@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20110614164943.GA26764%40sigill.intra.peff.net
In-Reply-To: <9E9413C214124A0980AADBDFAD7DF28E@aggress.net>

```
On Tue, Jun 14, 2011 at 01:20:32PM +0100, Richard Shaw wrote:

> Could someone please give me an explanation of what the following error message means:
> 
> error: error in sideband demultiplexer

The git protocol generally operates over a single stream. Most of that
stream will have object data on it, but we also want to be able to pass
informational messages. So there is a "sideband", which works something
like:

  1. The remote end puts a header at the beginning of each packet
     telling us whether it's for the data stream or the sideband.

  2. We either fork or start a thread to read the data from the remote
     and demultiplex it. If it's sideband, we output it to stderr. If
     it's data, we pass it on to the main git program.

The error message indicates that the thread or forked process
implementing the sideband demultiplexer returned an error in its exit
code. Usually it will have printed some other error message already that
is more specific, but you may have found a case where it doesn't.

Which platform are you on? Are you building with threads (i.e., are you
setting NO_PTHREADS)? Are there any other error messages? If not, is it
possible to use "strace -f" to get a trace that shows the error?

-Peff

```

## Junio C Hamano, 2011-06-14 19:32

Subject: Re: error: error in sideband demultiplexer
Message-ID: <7vhb7sky4i.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vhb7sky4i.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20110614164943.GA26764@sigill.intra.peff.net>

```
Jeff King <peff@peff.net> writes:

> On Tue, Jun 14, 2011 at 01:20:32PM +0100, Richard Shaw wrote:
>
>> Could someone please give me an explanation of what the following error message means:
>> 
>> error: error in sideband demultiplexer
>
> The git protocol generally operates over a single stream. Most of that
> stream will have object data on it, but we also want to be able to pass
> informational messages. So there is a "sideband", which works something
> like:
>
>   1. The remote end puts a header at the beginning of each packet
>      telling us whether it's for the data stream or the sideband.
>
>   2. We either fork or start a thread to read the data from the remote
>      and demultiplex it. If it's sideband, we output it to stderr. If
>      it's data, we pass it on to the main git program.
>
> The error message indicates that the thread or forked process
> implementing the sideband demultiplexer returned an error in its exit
> code. Usually it will have printed some other error message already that
> is more specific, but you may have found a case where it doesn't.
>
> Which platform are you on? Are you building with threads (i.e., are you
> setting NO_PTHREADS)? Are there any other error messages? If not, is it
> possible to use "strace -f" to get a trace that shows the error?

Another common question to ask is...

Do you have something funky in dot files under $HOME on the remote side
(e.g. .bash_profile or .login) that cause the process started by the
non-interactive ssh session we make to the remote end give extra output?

IOW,

    $ ssh that-remote-site "cat /dev/null"

should not give us any extra "greeting".

```
