Subject: Re: libssh2_sftp_write now hangs eventually

Re: libssh2_sftp_write now hangs eventually

From: Daniel Stenberg <>
Date: Wed, 3 Nov 2010 22:33:48 +0100 (CET)

On Wed, 3 Nov 2010, Mark Riordan wrote:

> Progress, but now it hangs.

Hangs!? Are you using the libssh2 API set to blocking or non-blocking?

> (As you know, this is with the client running on Windows 2003R2.)

Uhm, just to be sure: that's not a 64 bit OS, is it?

> Using output buffer size of 32500 bytes
> libssh2_sftp_write 1 sent 12000 bytes
> libssh2_sftp_write 2 sent 4000 bytes
> libssh2_sftp_write 3 sent 4000 bytes
> libssh2_sftp_write 4 sent 4000 bytes
> libssh2_sftp_write 5 sent 4000 bytes
> libssh2_sftp_write 6 sent 4000 bytes
> libssh2_sftp_write 7 sent 500 bytes
> libssh2_sftp_write 8 sent 4000 bytes
> libssh2_sftp_write 9 sent 8000 bytes
> libssh2_sftp_write 10 sent 4000 bytes
> (then it hangs)
> Sometimes it hangs after write #2.

When it hangs, can you figure out where it is in the code and what it does?
Like attaching a debugger to the running process or possibly run it from a
debugger to start with?

Or perhaps you have something strace/ltrace-like that can provide further data
on what it does when it hangs or even immediately before.

> Naturally, if I enable tracing, the upload completes.

Yes. It could be an idea to make sure the debugdump() in src/transport.c isn't
used to see if you can get the hang with the rest of the debug outputs left.
debugdump() is what produces the most output.

Received on 2010-11-03