[gstreamer-bugs] [Bug 355499] New: ensure_current_registry_forking() fails if zombie already killed by signal handler

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Mon Sep 11 14:41:56 PDT 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=355499
 GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: ensure_current_registry_forking()  fails if zombie
                    already killed by signal handler
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: seanegan at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


gst_init calls ensure_current_registry_forking() which forks. It then calls
waitpid() on the child and fails initialization if waitpid() fails.

If an application has a handler for SIGCHLD to kill zombies, the signal handler
and ensure_current_registry_forking are in a race to kill the zombie; if the
app gets it first, initialization fails. This was the case in Gaim.  Our
(hacky) workaround is to delay our waitpid() one second to allow gstreamer to
kill it.

Gstreamer 0.10.10 allows you to programmatically turn off forking
programtically, but it would be nice if the forking behavior were changed to
avoid this entirely; it could take an application developer a long time
debugging to realize the problem and turn off forking.

A suggestion would be to ignore the return value of waitpid and get back the
status in a pipe.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list