user-defined signals can cause process terminate
------------------------------------------------

                 Key: QPID-2388
                 URL: https://issues.apache.org/jira/browse/QPID-2388
             Project: Qpid
          Issue Type: Bug
          Components: C++ Client
    Affects Versions: 0.5
         Environment: Linux
            Reporter: Azim Fatehi


I have an application which uses some user-defined signals for process control. 
When trying to bind qpid in to this application I've found that the client 
library spawns an i/o thread which ignores signal masks that the process has 
defined before making any calls to qpid. The i/o thread changes it's own signal 
mask to sigemptyset and is catching signals intended for another thread in my 
process which has called sigtimedwait(). The default action for user defined 
signals is process terminate, so the process is subsequently dying.

I've made the following change to EpollPoller.cpp to work around the problem 
within my environment:

$ diff -w EpollPoller.cpp EpollPoller-fixed.cpp
248c248
<         ::sigemptyset(&sigMask);
---
>         ::sigfillset(&sigMask);

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to