Hi all,
I'm facing very important reliability issues with qpid-proton cpp (0.26.0 but 
also yesterday's master)

Here is my situation : I have several proton::messaging_handler's, one for each 
of my connections.
Some handlers are "senders" ; they have one link that is a proton::sender.
 Some handlers are "receivers" ; they have  one link that is a 
proton::receiver. Each time they receive an input  message, they do some 
processing on it, and finally add a  "sender->send()" task to the work queue of 
one or more some sender handlers (by  calling work_queue()->add( [=] 
sender->send(msg); } as shown in the multi-threading examples). Very simple.

 This works fine for some time (tens of thousands of messages, several  minutes 
or hours), but eventually crashes, either with a SEGFAULT (when  the 
qpid-proton lib is compiled in release mode) or with an assert (in  debug 
mode), in qpid-proton/c/src/core/engine.c line 483,  
assert(!conn->transport->referenced) in function  pn_connection_finalize().  
The issue happens both with Azure ServiceBus and locally on my PC with 
qpid-broker.
The proton logs (activated with export PN_TRACE_FRM=1) do not show  anything 
abnormal (no loss of connection, no rejection of messages, no  timeouts, no 
full queue, ...).  As the connection is not closed, I wonder why 
pn_connection_finalize() would be called in the first place.
  The issue happens when I have all my connections handled by a single 
container (in multi-threaded mode), and also when I define one separate 
container for each connection (and that I run in single-threaded mode). I can 
also reproduce the issue with one single container that handles just two 
connections, and where each connection has its own handler.
I can't see what I'm doing wrong (if I am) as my code is very close to the 
provided examples.

I created a ticket on the JIRA ( 
https://issues.apache.org/jira/projects/PROTON/issues/PROTON-1999 ) with 
minimal sample code to reproduce the issue (~100 lines), the call stack and the 
logs.

Kind regards,

Olivier
 
 
 




This mail, and any attachments thereto, is intended only for use by the 
addressee(s) named herein and may contain legally privileged and/or 
confidential information.  If you are not the intended recipient, please note 
that any review, dissemination, disclosure, alteration, printing, copying or 
transmission of this mail and/or any file transmitted with it, is strictly 
prohibited and may be unlawful.  If you have received this mail by mistake, 
please immediately notify the sender as well as our mail administrator at 
[email protected], and permanently destroy the original as well as any 
copy thereof.

Reply via email to