You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Andrew Stitcher (JIRA)" <qp...@incubator.apache.org> on 2010/04/13 17:35:48 UTC

[jira] Issue Comment Edited: (QPID-2388) user-defined signals can cause process terminate

    [ 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:dev-subscribe@qpid.apache.org