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

ASF GitHub Bot commented on DISPATCH-1703:
------------------------------------------

kgiusti opened a new pull request #773:
URL: https://github.com/apache/qpid-dispatch/pull/773


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> router drops TransactionalState on produced messages on link routes
> -------------------------------------------------------------------
>
>                 Key: DISPATCH-1703
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1703
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 1.10.0, 1.11.0, 1.12.0
>            Reporter: Robbie Gemmell
>            Assignee: Ken Giusti
>            Priority: Blocker
>             Fix For: 1.13.0
>
>         Attachments: HelloWorld.java, broker_trace.txt, client_trace.txt, 
> qdrouterd.conf, router_trace.txt
>
>
> The router is dropping the TransactionalState carrying the txn-id on produced 
> messages when link routing to e.g a broker (that the txn coordinator link has 
> also been routed to).
> This makes the send non-transactional between router and broker, entirely 
> breaking the transactional model and meaning the send takes effect before 
> committed, making it available for consumption by consumers before commit, 
> meaning it cant be rolled back, etc.
> Take for example the attached modified Qpid JMS HelloWorld example, link 
> routing the producer and consumer to a broker, using the attached router 
> config. During this, the router can be seen logging arrival of a produced 
> message carrying TransactionalState with the relevant txn-id. It can then be 
> seen immediately sending this message on to the broker as expected - but 
> without the TransactionalState. These 2 lines should essentially be identical 
> but for the transport/channel and direction arrow details:
> {noformat}
> [0x10ff240]: AMQP:FRAME:1 <- @transfer(20) [handle=1, delivery-id=1, 
> delivery-tag=b"\x00", message-format=0, settled=false, more=false, 
> state=@transactional-state(52) 
> [txn-id=b"15cecc4b-bac1-11ea-b3f8-000c29e9f622"]] (149) 
> "\x00Sr\xc1)\x04\xa3\x0ex-opt-jms-destQ\x00\xa3\x12x-opt-jms-msg-typeQ\x05\x00Ss\xd0\x00\x00\x00L\x00\x00\x00\x0a\xa1/ID:6d720961-1a6b-446a-9606-55b594e74f39:1:1:1-1@\xa1\x05queue@@@@@@\x83\x00\x00\x01s\x04\xe3\xcc
>  \x00Sw\xa1\x0eHello world! 1"
> [0x10b0d70]: AMQP:FRAME:0 -> @transfer(20) [handle=1, delivery-id=1, 
> delivery-tag=b"\x00", message-format=0] (155) 
> "\x00Sr\xd1\x00\x00\x00,\x00\x00\x00\x04\xa3\x0ex-opt-jms-destQ\x00\xa3\x12x-opt-jms-msg-typeQ\x05\x00Ss\xd0\x00\x00\x00L\x00\x00\x00\x0a\xa1/ID:6d720961-1a6b-446a-9606-55b594e74f39:1:1:1-1@\xa1\x05queue@@@@@@\x83\x00\x00\x01s\x04\xe3\xcc
>  \x00Sw\xa1\x0eHello world! 1"
> {noformat}
> The produced message arrives at the broker and is accepted and transferred 
> back to the router and on to the consumer, before the clients original send 
> was committed - which it never was since the example actually does a rollback 
> after send and so should fail to consume anything.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to