www.libssh2.org | Daily snapshots | Mailing list archive | Docs | Examples | github

Archive Index This month's Index

Subject: Re: SCP upload failure

Re: SCP upload failure

From: Jeremy Knope <jerome_at_ambrosiasw.com>
Date: Wed, 26 Aug 2009 16:44:44 -0400

On Aug 24, 2009, at 11:56 AM, Jeremy Knope wrote:

> On Aug 24, 2009, at 11:43 AM, Daniel Stenberg wrote:
>
>> On Mon, 24 Aug 2009, Jeremy Knope wrote:
>>
>>> [libssh2] 4.745432 Conn: Close received for channel 0/0
>>>
>>> Seems like libssh2 says the channel close was received but is
>>> still blocked?
>>
>> Ehum. It does indeed look like you're onto something here.
>>
>>> Not sure if I'm reading it right, but I'm going to tweak some more
>>> and see if I can get more info about what's going on with writing
>>> of the data.
>>
>> That "Close received" message comes from the _libssh2_packet_add()
>> function. The _libssh2_packet_add() gets called from one place, and
>> that's from fullpacket() which is only called from within
>> _libssh2_transport_read() which is the lowest level SSH transport
>> reading function.
>>
>> I have a feeling that the error is around src/channel.c:1830 (in
>> current git) where it only checks the remote.close or
>> libssh2_channel_eof() if bytes_read == 0, which seems like wrong
>> presumption.
>>
>
>
> hope that helps then, the tests I was just doing where it was
> hanging on close wait was just to 'localhost', just was doing a
> couple tests on a local OS X server to see if there's a difference
> with trace on etc. With that server it's consistently corrupting
> the files but successfully exiting the wait, just all the files I've
> tried ended up bad on the other end. I don't see anything
> suspicious in the trace, or know if it's related to the above
> issue. Here's an example of an image file:
>
> <test.png>_______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Oh to add to this, the corruption only happened when I was using a
buffer size larger than what libssh2's write packet size limit was
(32*1024 I believe was the limit)
it would say it was splitting up the writes, I had it set to 128*1024
for buffer size. Once I set it to 32*1024 or lower I no longer had
files corrupting when going to this OS X server.

--
Jeremy Knope / Software Developer / Ambrosia Software, Inc. -- http://www.AmbrosiaSW.com/
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2009-08-26

the libssh2 team