Subject: Re: SFTP Compression support

Re: SFTP Compression support

From: TJ Saunders <>
Date: Tue, 31 Aug 2010 16:03:49 -0700 (PDT)

> [libssh2] 2.676521 Failure Event: -29 - compress/decompression failure
> [libssh2] 2.676537 Failure Event: -1 - transport read
> [libssh2] 2.676547 Failure Event: -21 - Read part of packet
> [libssh2] 2.676558 Failure Event: -1 - Timeout waiting for status message
> And there, I think, is a sign of the issue:
> [libssh2] 2.676521 Failure Event: -29 - compress/decompression failure
> The question is, though: why did the decompression fail? And why does it
> fail at this point, when reading file data (as opposed to earlier, when
> decompressing the rest of the messages on that subsystem/channel)?
> I'll keep poking at this to see if I can find any additional clues...

I patched the src/comp.c file (see first attached patch) to try to get
more information; in my particular use case, I saw:

  [libssh2] 3.316516 Transport: unhandled zlib error -5

According to the zlib.h header, a return value of -5 is Z_BUF_ERROR, which
indicates (in the case of calling the inflate() zlib function) that there
isn't enough space in the output buffer for the decompressor to make any

That being the case, I tried increasing the size of the output buffers
used for zlib decompression (see second attached patch), and things looked
much better. I'm not sure of just what the best increase in output buffer
sizes/growth factors should be, though.



   We are ashamed of everything that is real about us; ashamed of
   ourselves, of our relatives, of our incomes, of our accents, of
   our opinions, of our experience, just as we are ashamed of our
   naked skins.

           -George Bernard Shaw



Received on 2010-09-01