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

Alan Conway closed PROTON-1078.
-------------------------------
       Resolution: Not A Problem
    Fix Version/s:     (was: Future)

This is not a bug. The SendAsync() method call is blocked waiting for more 
credit, which never arrives. The broker correctly requeues the message in this 
case. Only one such outstanding call is possible per link.

> go electron broker dequeues an extra message
> --------------------------------------------
>
>                 Key: PROTON-1078
>                 URL: https://issues.apache.org/jira/browse/PROTON-1078
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: go-binding
>    Affects Versions: 0.11.0
>            Reporter: Alan Conway
>            Assignee: Alan Conway
>
> The go broker appears to dequeue an extra message in excess of link credit. 
> It does not send the message but puts it back on the queue, but it should not 
> have been dequeued in the first place without sufficient credit.
> Run the go exampe broker
> {code}
> cd examples/go/electron
> PN_TRACE_FRM=1 go run broker.go -debug
> {code}
> Then run this python client:
> {code}
> #!/usr/bin/python
> from proton import *
> messenger = Messenger()
> messenger.incoming_window = 1
> messenger.start()
> messenger.subscribe("localhost/test")
> m = Message()
> messenger.recv(1)
> t = messenger.get(m)
> print m.address, m.subject or "(no subject)", m.properties, m.body
> messenger.accept(t)
> messenger.stop()
> {code}
> As the following output shows, the broker attempts to send 2 messages, fails 
> on the second and puts it back on the queue. It should not have attempted to 
> send the second message since only 1 credit was granted.
> {code}
> broker(4374): Accepted 127.0.0.1:5672-127.0.0.1:44522
> [0x7fbb6c014990]:  <- AMQP
> [0x7fbb6c014990]:0 <- @open(16) 
> [container-id="AE522C5A-8BC0-4C3E-A75B-D1256C1AAA47", hostname="localhost", 
> channel-max=32767]
> [0x7fbb6c014990]:0 <- @begin(17) [next-outgoing-id=0, 
> incoming-window=2147483647, outgoing-window=2147483647]
> [0x7fbb6c014990]:0 <- @attach(18) [name="test", handle=0, role=true, 
> snd-settle-mode=1, rcv-settle-mode=0, source=@source(40) [address="test", 
> durable=0, timeout=0, dynamic=false], target=@target(41) [address="test", 
> durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
> [0x7fbb6c014990]:0 <- @flow(19) [incoming-window=2147483647, 
> next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, 
> link-credit=1, drain=false]
> broker(4374): incoming: session: &{}/0x1880800
> broker(4374): incoming: link(sender): test(test->test)
> broker(4374): test(test->test): sent "test-0"
> [0x7fbb6c014990]:  -> AMQP
> [0x7fbb6c014990]:0 -> @open(16) 
> [container-id="A28BE353-586E-4023-9590-995C2EC8362C", channel-max=32767]
> [0x7fbb6c014990]:0 -> @begin(17) [remote-channel=0, next-outgoing-id=0, 
> incoming-window=2147483647, outgoing-window=2147483647]
> [0x7fbb6c014990]:0 -> @attach(18) [name="test", handle=0, role=false, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="test", 
> durable=0, timeout=0, dynamic=false], target=@target(41) [address="test", 
> durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
> broker(4374): test(test->test): sent "test-1"
> [0x7fbb6c014990]:0 -> @transfer(20) [handle=0, delivery-id=0, 
> delivery-tag=b"1", message-format=0, settled=true, more=false] (72) 
> "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x06test-0"
> [0x7fbb6c014990]:0 <- @detach(22) [handle=0, closed=true]
> [0x7fbb6c014990]:0 <- @close(24) []
> [0x7fbb6c014990]:  <- EOS
> [0x7fbb6c014990]:  <- EOS
> [0x7fbb6c014990]:0 -> @detach(22) [handle=0, closed=true]
> [0x7fbb6c014990]:0 -> @close(24) []
> [0x7fbb6c014990]:  -> EOS
> broker(4374): test(test->test) closed: EOF
> broker(4374): message "test-1" put back, status unsent, error EOF
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to