qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Stitcher (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Commented: (QPID-2388) user-defined signals can cause process terminate
Date Tue, 13 Apr 2010 15:21:48 GMT

    [ https://issues.apache.org/jira/browse/QPID-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12856449#action_12856449
] 

Andrew Stitcher commented on QPID-2388:
---------------------------------------

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


Mime
View raw message