[ 
https://issues.apache.org/jira/browse/PROTON-40?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13465826#comment-13465826
 ] 

Ted Ross commented on PROTON-40:
--------------------------------

Here's a trace from a sending client that illustrates the problem.  The 
receiver issues two credits initially.

[0x20fda90:0] -> OPEN @16 ["93461507-de86-4e7a-b6a6-9a682dafba02", "0.0.0.0"]
[0x20fda90:1] -> BEGIN @17 [null, 0, 1024, 1024]
[0x20fda90:1] -> ATTACH @18 ["sender-xxx", 1, false, null, null, @40 
["queue1"], @41 ["queue1"], null, null, 0]
[0x20fda90:0] <- OPEN @16 [null, null]
[0x20fda90:1] <- BEGIN @17 [1, 0, 1024, 1024]
[0x20fda90:1] <- ATTACH @18 ["sender-xxx", 1, true, null, null, @40 ["queue1"], 
@41 ["queue1"], null, null, 0]
[0x20fda90:1] <- FLOW @19 [0, 1024, 0, 1024, 1, 0, 2, null, false]
[0x20fda90:1] -> TRANSFER @20 [1, 0, b"\x00\x00\x00\x00\xff\x7f\x00\x00", 0, 
false, false] (183) 
"\x00\x80\x00\x00\x00\x00\x00\x00\x00p\xd0\x00\x00\x00\x14\x00\x00\x00\x05V\x00P\x04p\x00\x00\x00\x00V\x00p\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00s\xd0\x00\x00\x00m\x00\x00\x00\x0d@@\xb1\x00\x00\x00\x15amqp://0.0.0.0/queue1@\xb1\x00\x00\x00+amqp://93461507-de86-4e7a-b6a6-9a682dafba02@@@\x80\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00@q\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00\x00u\xb0\x00\x00\x00\x09Message:0"
[0x20fda90:1] -> TRANSFER @20 [1, 1, b"\x01\x00\x00\x00\xff\x7f\x00\x00", 0, 
false, false] (183) 
"\x00\x80\x00\x00\x00\x00\x00\x00\x00p\xd0\x00\x00\x00\x14\x00\x00\x00\x05V\x00P\x04p\x00\x00\x00\x00V\x00p\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00s\xd0\x00\x00\x00m\x00\x00\x00\x0d@@\xb1\x00\x00\x00\x15amqp://0.0.0.0/queue1@\xb1\x00\x00\x00+amqp://93461507-de86-4e7a-b6a6-9a682dafba02@@@\x80\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00@q\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00\x00u\xb0\x00\x00\x00\x09Message:1"
[0x20fda90:1] <- FLOW @19 [2, 1022, 0, 1024, 1, 2, 1, null, false]
[0x20fda90:1] <- DISPOSITION @21 [true, 0, 0, true, @36 []]
[0x20fda90:1] -> TRANSFER @20 [1, 2, b"\x02\x00\x00\x00\xff\x7f\x00\x00", 0, 
false, false] (183) 
"\x00\x80\x00\x00\x00\x00\x00\x00\x00p\xd0\x00\x00\x00\x14\x00\x00\x00\x05V\x00P\x04p\x00\x00\x00\x00V\x00p\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00s\xd0\x00\x00\x00m\x00\x00\x00\x0d@@\xb1\x00\x00\x00\x15amqp://0.0.0.0/queue1@\xb1\x00\x00\x00+amqp://93461507-de86-4e7a-b6a6-9a682dafba02@@@\x80\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00@q\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00\x00u\xb0\x00\x00\x00\x09Message:2"
[0x20fda90:1] <- FLOW @19 [3, 1022, 0, 1024, 1, 3, 1, null, false]
[0x20fda90:1] <- DISPOSITION @21 [true, 2, 2, true, @36 []]

                
> Batching of message IDs in Disposition frames not supported
> -----------------------------------------------------------
>
>                 Key: PROTON-40
>                 URL: https://issues.apache.org/jira/browse/PROTON-40
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>            Reporter: Ted Ross
>            Priority: Critical
>
> If a proton client calls pn_disposition on more than one received delivery 
> between the sending of disposition frames, the next disposition frame will 
> reference only the first message in the batch.
> Ref:  This code fragment from pn_post_disp which uses the same value for 
> first and last id:
>     return pn_post_frame(transport->disp, ssn_state->local_channel, 
> "DL[oIIo?DL[]]", DISPOSITION,
>                          link->endpoint.type == RECEIVER, state->id, 
> state->id,
>                          delivery->local_settled,
>                          (bool)code, code);
> The result of this is that dispositions for messages are lost and senders 
> hang if there are credit windows of greater than one.  It would be ok, but 
> inefficient, to send multiple singleton dispositions.  In fact, proton simply 
> skips one or more disposition so the settlement of messages is incomplete.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to