ASF GitHub Bot commented on DISPATCH-1488:

kgiusti commented on pull request #638: DISPATCH-1488: add test to verify 
transanction handling
URL: https://github.com/apache/qpid-dispatch/pull/638
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:

> link-routed transaction coordination broken due to 'declared' state truncation
> ------------------------------------------------------------------------------
>                 Key: DISPATCH-1488
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1488
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 1.9.0, 1.10.0
>            Reporter: Robbie Gemmell
>            Assignee: Ken Giusti
>            Priority: Blocker
>             Fix For: 1.10.0
> The 1.9.0 release and current master for 1.10.0 both truncate the 'declared' 
> transaction delivery state when routing a transaction coordinator link to a 
> broker peer, omitting the contained txn-id and breaking all ability to link 
> route transactional work through the router.
> Some output while trying this to debug an unrelated issue is detailed below. 
> First, a message transfer arrives at the router with body requesting a 
> transaction declare. The router sends the link-routed transfer onward to the 
> broker:
> {noformat}
> [0x2251560]:1 <- @transfer(20) [handle=0, delivery-id=0, 
> delivery-tag=b"\x00", message-format=0, settled=false] (7) "\x00Sw\x00S1E"
> [0x21ddf40]:0 -> @transfer(20) [handle=1, delivery-id=0, 
> delivery-tag=b"\x00", message-format=0] (7) "\x00Sw\x00S1E"
> {noformat}
> (Not shown, after the above in the case being debugged, there was a 
> non-transactional transfer on a second session across the same client->router 
> connection, then forwarded on the same router->broker connection).
> The broker peer establishes a transaction and responds with disposition to 
> indicate it is declared, and providing the mandatory txn-id. The router 
> relays this disposition, but critically drops the txn-id from the delivery 
> state:
> {noformat}
> [0x21ddf40]:0 <- @disposition(21) [role=true, first=0, last=0, settled=true, 
> state=@declared(51) [txn-id=b"4a12a39a-09fe-11ea-91ae-000c29e9f622"]]
> [0x2251560]:1 -> @disposition(21) [role=true, first=0, settled=true, 
> state=@declared(51) null]
> {noformat}
> The recipient client then barfs at this point since txn-id is mandatory for 
> the declared state.
> Using 1.8.0, the declared state transited the router fine:
> {noformat}
> [0x1f49530]:0 <- @disposition(21) [role=true, first=0, last=0, settled=true, 
> state=@declared(51) [txn-id=b"78dabc4f-0a00-11ea-bb46-000c29e9f622"]]
> [0x1fc2b20]:2 -> @disposition(21) [role=true, first=0, settled=true, 
> state=@declared(51) [txn-id=b"78dabc4f-0a00-11ea-bb46-000c29e9f622"]]
> {noformat}

This message was sent by Atlassian Jira

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to