Affects Version/s: proton-c-0.29.0
Fix Version/s: None
Environment:Fedora 29; dispatch master=2efbd; proton master or 0.29 release
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.