[
https://issues.apache.org/jira/browse/PROTON-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Ross updated PROTON-1078:
--------------------------------
Fix Version/s: Future
> 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
> Fix For: Future
>
>
> 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.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]