[
https://issues.apache.org/jira/browse/QPID-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12856449#action_12856449
]
Andrew Stitcher edited comment on QPID-2388 at 4/13/10 11:35 AM:
-----------------------------------------------------------------
If you have a small test case that would help verify that we have fixed this
bug.
Also could you say what you would consider a correct solution to this issue:
1. Whichever signals were blocked before using any qpid apis carry on being
blocked. but changing the process signal mask after any qpid api has been
called will have an undefined effect.
2. Introducing a way to change the blocked signals on the fly.
1. is feasible to implement in a short time. 2. would need very careful
thinking and would be a non portable API to boot.
was (Author: astitcher):
If you have a small test case that would help verify that we have fixed
this bug.
Also could you say what you would consider a correct solution to this issue:
1. Whichever signals were blocked before using any qpid apis carry on being
blocked. but changing the process signal mask has an undefined effect.
2. Introducing a way to change the blocked signals on the fly.
1. is feasible to implement in a short time. 2. would need very careful
thinking and would be a non portable API to boot.
> 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.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]