You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Chuck Rolke (JIRA)" <ji...@apache.org> on 2015/03/03 19:55:06 UTC

[jira] [Closed] (QPID-6416) Mutex.h:116: void qpid::sys::Mutex::lock(): Assertion `0' failed. - during Messaging shutdown

     [ https://issues.apache.org/jira/browse/QPID-6416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chuck Rolke closed QPID-6416.
-----------------------------
    Resolution: Fixed

In the example code the derived class (that contained the qpidmessaging objects) never had its destructor called. Adding a virtual destructor to the base class
{noformat}
  virtual ~MsgPublisher() {}
{noformat}
gets MsgPublisher to call destructors on the derived objects. This in turn gets qpidmessaging to close it's internal threads in an orderly manner.

* The reason that it happens intermittently is that there's a race. If the worker threads close before the main thread then everything is OK. If the main thread closes first then this crash happens.

* The reason it does not happen  in protocol version 0-10 is because threads are owned by a static singleton that is destroyed by the main thread only.

An improvement in how threads are handled will be discussed in a separate issue.

> Mutex.h:116: void qpid::sys::Mutex::lock(): Assertion `0' failed. - during Messaging shutdown
> ---------------------------------------------------------------------------------------------
>
>                 Key: QPID-6416
>                 URL: https://issues.apache.org/jira/browse/QPID-6416
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Client
>    Affects Versions: 0.31
>         Environment: Raspberry Pi Pidora Linux 3.12.23-1 armv61 32-bit
> Qpid / Proton trunk circa 2015-02-10
> Messaging client test program
>            Reporter: Chuck Rolke
>            Assignee: Chuck Rolke
>             Fix For: 0.31
>
>         Attachments: 6416-fails.cpp, 6416-works.cpp, QpidPublisher.cpp, qpid-6416-bt.txt, testQpidFactory.cpp
>
>
> The C++ code uses Qpid Messaging and fails with the summary message about half the time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org