[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ssh_handle_packets blocking issue


Hi guys,

Just wanted to know if someone has had luck reproducing (and hopefully
resolving :) ) the ssh_handle_packets blocking behaviour I mentioned
earlier? Or can someone verify if my code is not at fault?

I've tested the master tree of libssh and I still see this behaviour.
Earlier on a lot of the X server code was in Milo's personal tree that I was
using that has been merged into the the master.

Please let me know if there's more info I can provide....would love to see
this resolved :)

Thanks again.

Bye for now

On Tue, Apr 12, 2011 at 4:44 PM, jeetu.golani@xxxxxxxxx <
jeetu.golani@xxxxxxxxx> wrote:

>
> ah sadly this seems different from what I am observing :(...though I am
> curious if something in my code could somehow be causing this effect....if
> someone here could go through my code (sent earlier) or throw any light I'd
> appreciate it profusely :)
>
>
>
>
> On Tue, Apr 12, 2011 at 3:17 PM, Oliver Stöneberg <oliverst@xxxxxxxxx>wrote:
>
>> Hey,
>>
>> seems like this was actually my fault. The hang happened in
>> ssh_channel_get_exit_status(). After chatting with Aris it turned
>> out, that it wasn't enough to just call ssh_channel_send_eof() before
>> that, but I also needed to call ssh_channel_close() to assure the
>> channel is actually closed.
>>
>> Also the issue with the poll function I mentioned is already fixed in
>> the latest code. I am using an older version at the moment.
>>
>> Greetings
>> Oliver
>>
>> > Hi,
>> >
>> > > I just ran into this issues as well using Windows. Here's the
>> > > backtrace:
>> >
>> > Oliver, this is interesting. I'm very intrigued to know if this
>> manifests in
>> > the
>> > same way like how I am seeing? Is your code part of a server or client?
>> > In my case this behaviour and blocking occurs on some occasions is that
>> > how you are seeing it too?
>> >
>> > Aris, any luck or anything you would like me to try?
>> >
>> > Bye for now.
>> >
>> >
>> >
>> > On Tue, Apr 12, 2011 at 1:58 PM, Oliver Stöneberg <oliverst@xxxxxxxxx
>> >wrote:
>> >
>> > > I just ran into this issues as well using Windows. Here's the
>> > > backtrace:
>> > >
>> > >        ntdll.dll!775ff8c1()
>> > >        [Frames below may be incorrect and/or missing, no symbols
>> loaded
>> > > for ntdll.dll]
>> > >        ntdll.dll!775ff8c1()
>> > >        mswsock.dll!723d6f0f()
>> > >        mswsock.dll!723d6d30()
>> > >        ws2_32.dll!75eb2f7d()
>> > >        ws2_32.dll!75eb6a28()
>> > >        shell32.dll!762f11f0()
>> > >        libssh.dll!bsd_poll(ssh_pollfd_struct * fds=0x06b87ba8,
>> unsigned
>> > > long nfds=1, int timeout=-1)  Line 212 + 0x2e bytes     C
>> > > >       libssh.dll!ssh_poll(ssh_pollfd_struct * fds=0x06b87ba8,
>> unsigned
>> > > long nfds=1, int timeout=-1)  Line 289 + 0x14 bytes     C
>> > >        libssh.dll!ssh_poll_ctx_dopoll(ssh_poll_ctx_struct *
>> > > ctx=0x06b8b778, int timeout=-1)  Line 635 + 0x17 bytes  C
>> > >        libssh.dll!ssh_handle_packets(ssh_session_struct *
>> > > session=0x06b8bbc8, int timeout=-1)  Line 390 + 0xd bytes       C
>> > >        libssh.dll!ssh_channel_get_exit_status(ssh_channel_struct *
>> > > channel=0x06b8ecb8)  Line 2376 + 0xe bytes      C
>> > >        [External Code]
>> > >
>> > > Pretty strange, that it is using bsd_pool. Looks like an issue in
>> > > ssh_poll_init(). It doesn't set ssh_poll_emu to wsa_poll when it is
>> > > available.
>> > >
>> > >
>> > > > Hi Aris,
>> > > >
>> > > > I thought I'll also send across openssh client debug output taken
>> both
>> > > > when things work and when they fail, maybe this helps somehow too.
>> > > >
>> > > > Thanks again.
>> > > >
>> > > > Bye for now
>> > > >
>> > > > On Wed, Apr 6, 2011 at 8:07 PM, jeetu.golani@xxxxxxxxx
>> > > > <jeetu.golani@xxxxxxxxx> wrote:
>> > > > > Hi Aris,
>> > > > >
>> > > > >> I think it's because the options from ssh_session are overriden
>> by the
>> > > > >> sshbind one. Either use ssh_bind_options_set (I think it's the
>> name)
>> > > or
>> > > > >> call ssh_options_set after the ssh_bind_accept.
>> > > > >
>> > > > > Yup you were right, although ssh_bind_options_set didn't help but
>> when
>> > > > > I set log options with ssh_options_set after ssh_bind_accept it
>> did
>> > > > > the trick :)
>> > > > >
>> > > > > I'm attaching the logs I've collected along with a text with the
>> code
>> > > > > wherein things fall apart on some occassions.
>> > > > >
>> > > > > ...
>> > > > > do {
>> > > > >                ssh_event_dopoll(event, 1000);
>> > > > >                } while(!ssh_channel_is_closed(chan_x11));
>> > > > > ...
>> > > > >
>> > > > > this is basically the place where things fail, this is replica
>> code
>> > > > > from the samplesshd-tty.c file. Is the timeout value of 1000 too
>> small
>> > > > > here? should I have infinite blocking here too or increase this
>> value?
>> > > > >
>> > > > > I'm also attaching the entire server code that i've been working
>> on
>> > > > > for eBrainPool (http://ebrain.in)...beware tough it's laden with
>> > > > > printfs i've put in for debugging...and heavily laden with bugs I
>> > > > > suppose ;)...work in progress.
>> > > > >
>> > > > > Thanks so much guys for all the help truly appreciate it :)
>> > > > >
>> > > > > Bye for now
>> > > > >
>> > > >
>> > >
>> > >
>> > >
>> > >
>> >
>>
>>
>>
>>
>

Archive administrator: postmaster@lists.cynapses.org