You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Darryl L. Pierce" <dp...@redhat.com> on 2015/05/21 16:14:13 UTC

Direct receive not responding in Ruby...

Got an interesting bug I'm digging into currently.

In Ruby I've written analogs to the direct_* and simple_ send/recv
example apps. The simple versions all work well and can interact with
Python as expected.

However, the direct_recv.rb example isn't.

When the container starts listening for incoming direct connections, I
see
the following frames come in when the simple_send.rb client (or Python
analog) connects:

<- @open(16)
<- @begin(17)
<- @attach(18)

But what I don't see is the outgoing connection connections that occurr
in the Python version:

-> @open(16)
-> @open(17)
-> @open(18)

So the client connects but the flow never begins between the two. I'm
digging into the acceptor code but don't see where Ruby is behaving
differently from Python.

Any suggestions?

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/


Re: Direct receive not responding in Ruby...

Posted by "Darryl L. Pierce" <dp...@redhat.com>.
On Thu, May 21, 2015 at 04:37:09PM +0100, Gordon Sim wrote:
> In python, it is the EndpointStateHandler, that is part of MessagingHandler
> which is responsible for that. If ruby is doing something similar, I'd start
> by checking if the equivalent handler is being called.

As always you nailed it on the head. I'm in your debt, Gordon.

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/


Re: Direct receive not responding in Ruby...

Posted by Gordon Sim <gs...@redhat.com>.
On 05/21/2015 03:14 PM, Darryl L. Pierce wrote:
> Got an interesting bug I'm digging into currently.
>
> In Ruby I've written analogs to the direct_* and simple_ send/recv
> example apps. The simple versions all work well and can interact with
> Python as expected.
>
> However, the direct_recv.rb example isn't.
>
> When the container starts listening for incoming direct connections, I
> see
> the following frames come in when the simple_send.rb client (or Python
> analog) connects:
>
> <- @open(16)
> <- @begin(17)
> <- @attach(18)
>
> But what I don't see is the outgoing connection connections that occurr
> in the Python version:
>
> -> @open(16)
> -> @open(17)
> -> @open(18)
>
> So the client connects but the flow never begins between the two. I'm
> digging into the acceptor code but don't see where Ruby is behaving
> differently from Python.
>
> Any suggestions?
>

In python, it is the EndpointStateHandler, that is part of 
MessagingHandler which is responsible for that. If ruby is doing 
something similar, I'd start by checking if the equivalent handler is 
being called.