Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-2388

user-defined signals can cause process terminate

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.5
    • Fix Version/s: 0.7
    • Component/s: C++ Client
    • Labels:
      None
    • Environment:

      Linux

      Description

      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);

        Attachments

          Activity

            People

            • Assignee:
              astitcher Andrew Stitcher
              Reporter:
              azimf Azim Fatehi
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: