[ https://issues.apache.org/jira/browse/PROTON-2128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025376#comment-17025376 ]
Charles E. Rolke commented on PROTON-2128: ------------------------------------------ Now that PROTON-2005 is fixed I re-ran my dispatch self test. I don't see the symptom of PROTON-2005 but I do see this error again very frequently. I tried the naive fix: {{diff --git a/c/src/core/engine.c b/c/src/core/engine.c}} {{index c3a82adbc..50880a113 100644}} {{--- a/c/src/core/engine.c}} {{+++ b/c/src/core/engine.c}} {{@@ -683,7 +683,7 @@ static void pni_add_work(pn_connection_t *connection, pn_delivery_t *delivery)}} {{ {}} {{ if (!delivery->work)}} {{ {}} {{- assert(!delivery->local.settled); // never allow settled deliveries}} {{+ assert(!delivery->local.settled || delivery->aborted); }} {{ LL_ADD(connection, work, delivery);}} {{ delivery->work = true;}} {{ }}} but this didn't fix anything and exposed an assert in transport.c line 1469, pn_full_settle() assert(!delivery->work); This problem needs a more comprehensive solution. Also, in a production build the code blasts through and ignores the asserts. What does that mean for the integrity of the proton subsystem? > Python client crash sending aborted messages > -------------------------------------------- > > Key: PROTON-2128 > URL: https://issues.apache.org/jira/browse/PROTON-2128 > Project: Qpid Proton > Issue Type: Bug > Components: python-binding > Affects Versions: proton-c-0.29.0 > Environment: Fedora 29; dispatch master=2efbd; proton master or 0.29 > release > Reporter: Charles E. Rolke > Priority: Major > Attachments: PROTON-2128-reproducer.zip, > PROTON-2128_DISPATCH-1464-gdb-bt.txt, PROTON-2128_DISPATCH-1464-gdb-py-bt.txt > > > This issue was originally reported under DISPATCH-1464 > Dispatch self tests have an intermittent failure: > {{ > 41: test_05_message_route_abort_one_router > (system_tests_delivery_abort.RouterTest) > ... python: /home/chug/git/qpid-proton/c/src/core/engine.c:691: > pni_add_work: Assertion `!delivery->local.settled' failed. > 1/1 Test #41: system_tests_delivery_abort ......Child aborted***Exception: > 4.47 sec > }} > The failure is an assert with the assumption that the delivery must not be > settled. The failing code is handling a SENDER link. > The suspect here is interaction with the abort processing which spontaneously > settles an outgoing delivery from the client side. The message is not > presettled and there is no settlement over the wire. > Spontaneous settlement may prove the assert to be overly aggressive: > sometimes deliveries may be settled in pni_add_work(). Maybe the assertion > could be changed to allow delivery.local.settled to be true but only if > delivery.aborted is also true. > Core dump backtraces to be added shortly. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org