GNOME Bugzilla – Bug 681106
removing sync handler from gst bus causes segfault
Last modified: 2012-12-17 11:47:14 UTC
I have found two similar situations where removing the sync handler from a pipeline's bus with set_sync_handler(None) results in a segfault. Details / Reproducing: I have two short test cases with backtraces. In the first, I remove the sync handler after I have set the pipeline's state to null. test case: http://pastebin.com/R7dtsj9J backtrace: http://pastebin.com/rGZbAMXR The segfault happens regularly on exactly the i==4123 iteration of the loop. In the second, I remove the sync handler before setting the pipeline to NULL. test case: http://pastebin.com/ByVQjqH5 backtrace: http://pastebin.com/XzfJeC92 This one segfaults with some probability (the loop is in the test only to increase probability of occurrence). Also, in this case, I get a python error "TypeError: 'tuple' object is not callable" immediately before the segfault. In both test cases, 'foo.wav' is some input file; different file sizes (incl. 128 samples and 60 minutes) didn't seem to affect occurrence. System / Install: Ubuntu 12.04 Python 2.73 python-gst 0.10.22-3 libgstreamer 0.10.36 libglib2 2.23.3 gstreamer0.10-plugins-base 0.10.36 (All gstreamer packages installed in last few months using apt-get.) I also reproduced these segfaults on Debian Wheezy, with the same python, gstreamer, and glib versions as above. On Wheezy, the first testcase (http://pastebin.com/R7dtsj9J) segfaulted on the i==4122 iteration rather than i==4123.
Closing this bug now, gst-python is only an extension module to pygi now and this bug doesn't make much sense anymore in this context.