You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Justin Ross (JIRA)" <ji...@apache.org> on 2016/11/04 12:47:58 UTC

[jira] [Updated] (PROTON-1078) go electron broker dequeues an extra message

     [ 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org