[
https://issues.apache.org/jira/browse/DISPATCH-1488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robbie Gemmell updated DISPATCH-1488:
-------------------------------------
Description:
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}
was:
The 1.9.0 release and currently master both truncate the transaction
declaration delivery state while 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 on 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, there was a non-transactional transfer on a second
session across the same client->router connection, then forwarded on the same
router->broker connections).
The broker peer establishes a transaction and responds with disposition to
indicate it is declared, and providing the mandastory txn-id. The router relays
the 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.
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}
> 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
> Priority: Blocker
>
> 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
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]