[Gstreamer-bugs] [Bug 145338] New: - [PATCH] Fix a bus error in the optimal scheduler

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Fri Jul 2 20:57:14 PDT 2004


http://bugzilla.gnome.org/show_bug.cgi?id=145338
GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: [PATCH] Fix a bus error in the optimal scheduler
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: FreeBSD
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-maint at bugzilla.gnome.org
        ReportedBy: marcus at freebsd.org
         QAContact: gstreamer-maint at bugzilla.gnome.org


When starting a new game in monkey-bubble 0.3.2 with malloc debugging enabled in
FreeBSD, gstreamer crashes on SIGBUS in the optimal scheduler.

#0  0x28ee1a64 in gst_opt_scheduler_pad_unlink (sched=0x824eb00,
    srcpad=0x8261f00, sinkpad=0x8120500) at gstoptimalscheduler.c:2321
        l = (GSList *) 0xd0d0d0d0
        m = (GList *) 0x0
        linkcount = 0
        still_link1 = -791621424
        still_link2 = 1
        group = (GstOptSchedulerGroup *) 0x82671c0
        sched = (GstScheduler *) 0xd0d0d0d0
        osched = (GstOptScheduler *) 0x824eb00
        src_element = (GstElement *) 0x825a200
        sink_element = (GstElement *) 0x825c800
        group1 = (GstOptSchedulerGroup *) 0x82671c0
        group2 = (GstOptSchedulerGroup *) 0x82671c0
#1  0x283365cb in gst_scheduler_pad_unlink (sched=0x824eb00, srcpad=0x8261f00,
    sinkpad=0x8120500) at gstscheduler.c:186
        sched = (GstScheduler *) 0x824eb00
        sclass = (GstSchedulerClass *) 0x82671c0
#2  0x28326c9d in gst_pad_unlink (srcpad=0x8261f00, sinkpad=0x8120500)
    at gstpad.c:1010
        realsrc = (GstRealPad *) 0x8261f00
        realsink = (GstRealPad *) 0x8120500
        src_sched = (GstScheduler *) 0x824eb00
---Type <return> to continue, or q <return> to quit---
        sink_sched = (GstScheduler *) 0x824eb00
#3  0x283188f7 in gst_element_remove_pad (element=0x825a200, pad=0x8261f00)
    at gstelement.c:1181
        element = (GstElement *) 0x825a200
        pad = (GstPad *) 0x8261f00
#4  0x28f09468 in gst_ogg_demux_get_type ()
   from /usr/X11R6/lib/gstreamer-0.8/libgstogg.so
No symbol table info available.
#5  0x28f0a283 in gst_ogg_demux_get_type ()
   from /usr/X11R6/lib/gstreamer-0.8/libgstogg.so
No symbol table info available.
#6  0x28f0a3c9 in gst_ogg_demux_get_type ()
   from /usr/X11R6/lib/gstreamer-0.8/libgstogg.so
No symbol table info available.
#7  0x2831c7ee in gst_element_set_state (element=0x825a200,
    state=GST_STATE_READY) at gstelement.c:2735
        oclass = (GstElementClass *) 0x82671c0
        curpending = 136684032
        return_val = GST_STATE_SUCCESS
#8  0x2830f901 in gst_bin_change_state (element=0x821be00) at gstbin.c:755
        old_child_state = GST_STATE_PAUSED
        bin = (GstBin *) 0x8250a58
        children = (GList *) 0x8250a58
---Type <return> to continue, or q <return> to quit---
        child = (GstElement *) 0x825a200
        ret = 136737216
        old_state = GST_STATE_PAUSED
        pending = GST_STATE_READY
        have_async = 0
#9  0x28330b0b in gst_pipeline_change_state (element=0x821be00)
    at gstpipeline.c:174
No locals.
#10 0x2831c7ee in gst_element_set_state (element=0x821be00,
    state=GST_STATE_NULL) at gstelement.c:2735
        oclass = (GstElementClass *) 0x82671c0
        curpending = GST_STATE_READY
        return_val = GST_STATE_SUCCESS

The problem looks to be triggered by the fact that when group->num_elements is
0, group is unref'd, but that is made apparent to the original calling function.

With the attached patch, the crash is fixed.  I hope this is the right solution.

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are the QA contact for the bug, or are watching the QA contact.




More information about the Gstreamer-bugs mailing list