[
https://issues.apache.org/jira/browse/PROTON-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16852256#comment-16852256
]
Ganesh Murthy commented on PROTON-2056:
---------------------------------------
Here are the disposition frames for all 50
{noformat}
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=301, settled=true,
state=@accepted(36) []]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=302, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=4910,
incoming-window=2147483627, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=309, link-credit=245, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=303, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=4983,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=314, link-credit=242, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=304, last=305,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=306,
state=@released(38) []]
[0x55a85068cdf0]:0 -> @disposition(21) [role=false, first=306, settled=true]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=306, last=307,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5280,
incoming-window=2147483441, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=332, link-credit=232, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=308, last=313,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5281,
incoming-window=2147483440, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=332, link-credit=233, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=314, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5437,
incoming-window=2147483336, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=342, link-credit=224, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=315, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5560,
incoming-window=2147483295, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=350, link-credit=220, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=316, last=319,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483301, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=220, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=320, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=321, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483470, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=222, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=322, last=323,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=223, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=324, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=224, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=325, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=225, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=328, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=226, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=326, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=227, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=327, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=228, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=329, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=229, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=330, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=230, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=331, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=231, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=332, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=234, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=333, last=335,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=235, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=336, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=237, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=337, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=239, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=338, last=340,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=241, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=341, last=342,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=242, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=343, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=245, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=344, last=346,
settled=true, state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=246, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=347, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=247, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=348, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=248, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=349, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=249, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=350, settled=true,
state=@released(38) []]
[0x55a85068cdf0]:0 <- @flow(19) [next-incoming-id=5602,
incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647,
handle=0, delivery-count=352, link-credit=250, drain=false]
[0x55a85068cdf0]:0 <- @disposition(21) [role=true, first=351, settled=true,
state=@released(38) []]{noformat}
> [proton-python] on_settled callback not called when disposition arrives in 2
> frames
> ------------------------------------------------------------------------------------
>
> Key: PROTON-2056
> URL: https://issues.apache.org/jira/browse/PROTON-2056
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c, python-binding
> Affects Versions: proton-c-0.28.0
> Reporter: Ganesh Murthy
> Priority: Major
> Attachments: proton-2056.patch
>
>
> When very large anonymous messages are sent to the router and these messages
> have no receiver, they are immediately released. The router waits for the
> entire large message to arrive in the router before settling it. Due to this,
> in some cases, two disposition frames are sent for the same delivery, the
> first has state=released and the second has settled=true as seen below
>
> {noformat}
> 0x56330c891430]:0 <- @disposition(21) [role=true, first=315,
> state=@released(38) []]
> [0x56330c891430]:0 <- @disposition(21) [role=true, first=315, settled=true,
> state=@released(38) []]{noformat}
>
> When this case happens, the on_settled is not called for the python binding.
> The on_released is called. The on_settled must be called when a settlement
> arrives for every delivery. I observed this behavior in a python system test
> in Dispatch Router. The test called
> test_51_anon_sender_mobile_address_large_msg_edge_to_edge_two_interior can be
> found in tests/system_tests_edge_router.py
> The test does not fail all the time but when it does it is due to the
> on_settled not being called for deliveries that have this two part
> disposition.
>
> I tried in vain to write a standalone python reproducer. I could not do it.
>
> To run the specific system test run the following from the
> qpid-dispatch/build folder
>
> {noformat}
> /usr/bin/python "/home/gmurthy/opensource/qpid-dispatch/build/tests/run.py"
> "-m" "unittest" "-v"
> "system_tests_edge_router.RouterTest.test_51_anon_sender_mobile_address_large_msg_edge_to_edge_two_interior"{noformat}
>
> The following is the test failure
> {noformat}
> test_51_anon_sender_mobile_address_large_msg_edge_to_edge_two_interior
> (system_tests_edge_router.RouterTest) ... FAIL
> ======================================================================
> FAIL: test_51_anon_sender_mobile_address_large_msg_edge_to_edge_two_interior
> (system_tests_edge_router.RouterTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File
> "/home/gmurthy/opensource/qpid-dispatch/tests/system_tests_edge_router.py",
> line 964, in
> test_51_anon_sender_mobile_address_large_msg_edge_to_edge_two_interior
> self.assertEqual(None, test.error)
> AssertionError: None != u'Timeout Expired - n_sent=350 n_accepted=300
> n_modified=0 n_released=48'
> ----------------------------------------------------------------------
> Ran 1 test in 17.661s
> FAILED (failures=1)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]