You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Brian Bouterse (JIRA)" <ji...@apache.org> on 2016/10/18 23:30:58 UTC

[jira] [Updated] (PROTON-1328) Sending two messages with 1 sender hangs

     [ https://issues.apache.org/jira/browse/PROTON-1328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Bouterse updated PROTON-1328:
-----------------------------------
    Description: 
Sending two messages using 1 sender with a delay between the two messages hangs for me. I do all of my message sending in on_sendable(). I thought that on_sendable() would periodically get called. I'm not sure why I think that. If I keep sending messages on_sendable() continues to be called, but after two calls without messages being sent on_sendable() stops being called.

I have a periodic timer task that is checking for messages to be sent and so it can receive a message to send at any time. If the message is for an existing sender it should us that sender.

  was:
Do this with the Python bindings for Proton:

1. create a connection
2. create sender A to address 'simple_queue' in a on_timer_task callback
3. send a message using sender A
4. create a second sender B to address 'simple_queue' in a on_timer_task callback
5. When you return control from the on_timer_task the second time proton never calls on_sendable() again. Also you see the following output with PN_TRACE_FRM=1

[0x7f0cc40099c0]:  -> SASL
[0x7f0cc40099c0]:  <- SASL
[0x7f0cc40099c0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=:ANONYMOUS]
[0x7f0cc40099c0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@dev"]
[0x7f0cc40099c0]:0 <- @sasl-outcome(68) [code=0]
[0x7f0cc40099c0]:  -> AMQP
[0x7f0cc40099c0]:0 -> @open(16) [container-id="04665a66-82a7-4b20-a092-72867f99ccbc", hostname="localhost", channel-max=32767]
[0x7f0cc40099c0]:  <- AMQP
[0x7f0cc40099c0]:0 <- @open(16) [container-id="19dd820c-b896-4cc7-adfd-0d6faa314a94", channel-max=32767, offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"], properties={:product="qpid-cpp", :version="1.35.0", :platform="Linux", :host="dev"}]
channel initialized
on_timer_task called()
[0x7f0cc40099c0]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647]
[0x7f0cc40099c0]:0 -> @attach(18) [name="04665a66-82a7-4b20-a092-72867f99ccbc-simple_queue", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [address="simple_queue", durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x7f0cc40099c0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647]
[0x7f0cc40099c0]:0 <- @attach(18) [name="04665a66-82a7-4b20-a092-72867f99ccbc-simple_queue", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [address="simple_queue", durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x7f0cc40099c0]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=500, drain=false]
on_sendable() called
[0x7f0cc40099c0]:0 -> @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"1", message-format=0, settled=false, more=false] (139) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00/\x00\x00\x00\x0d@@@\xa1\x0csimple_queue@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa0<aGVsbG93b3JkLCBzZW50IGF0IDIwMTYtMTAtMTcgMTk6MzA6MTAuMTc5NjQ3"
on_sendable() called
[0x7f0cc40099c0]:0 <- @flow(19) [next-incoming-id=1, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=1, link-credit=500, drain=false]
[0x7f0cc40099c0]:0 <- @disposition(21) [role=true, first=0, last=0, settled=true, state=@accepted(36) []]
on_sendable() called
on_accepted() called
on_timer_task called()
[0x7f0cc40099c0]:0 -> @attach(18) [name="04665a66-82a7-4b20-a092-72867f99ccbc-simple_queue", handle=1, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [address="simple_queue", durable=0, timeout=0, dynamic=false], initial-delivery-count=0]

        Summary: Sending two messages with 1 sender hangs  (was: Creating two senders to same address hangs)

> Sending two messages with 1 sender hangs
> ----------------------------------------
>
>                 Key: PROTON-1328
>                 URL: https://issues.apache.org/jira/browse/PROTON-1328
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: python-binding
>    Affects Versions: 0.14.0
>         Environment: Fedora 24 using packages from F24 repos
>            Reporter: Brian Bouterse
>
> Sending two messages using 1 sender with a delay between the two messages hangs for me. I do all of my message sending in on_sendable(). I thought that on_sendable() would periodically get called. I'm not sure why I think that. If I keep sending messages on_sendable() continues to be called, but after two calls without messages being sent on_sendable() stops being called.
> I have a periodic timer task that is checking for messages to be sent and so it can receive a message to send at any time. If the message is for an existing sender it should us that sender.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org