Subject: Re: libssh2_sftp_write now hangs eventually

Re: libssh2_sftp_write now hangs eventually

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Tue, 9 Nov 2010 13:15:12 +0100 (CET)

On Mon, 8 Nov 2010, Mark Riordan wrote:

> [libssh2] 1.308494 Failure Event: -37 - Unable to send channel data
> [libssh2] 1.308494 Failure Event: -37 - Would block at end of sftp_write
> [libssh2] 1.308494 Failure Event: -37 - Would block at end of sftp_write
>
> Every time I run it, it logs "Would block at end of sftp_write" twice
> immediately before hanging.

> A clue?

Lound and clear, thanks! I've now pushed two additional fixes: one that should
prevent _libssh2_wait_socket() from hanging even if there's an internal error
that makes it not wait for neither read nor write on the socket. This might be
what you see. If this happens now, it should send a debug log output and set a
1 second timeout so it should at least continue.

I then followed up and addressed what I believe was the reason for the error
above, which is that the sftp_write() function decided on its own that it was
a EAGAIN situation and it mustn't since it then doesn't set the correct
"direction bits" etc which may confuse internals like I described above.

Please pull these two commits and see what happens!

-- 
  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2010-11-09