GNOME Bugzilla – Bug 666028
exception may cause test pipeline to be shut down from streaming thread
Last modified: 2012-05-18 12:44:00 UTC
If an exception occurs in python code called from a streaming thread (e.g. in a pad probe callback), the self.stop() will lead to a pipeline set_state(gst.STATE_NULL) being done from the streaming thread, which will dead-lock in the best case scenario, and crash in the worst case scenario. Example stacktrace, for illustrative purposes: [New LWP 22566] [New LWP 22563] [New LWP 22567] [New LWP 22569] [New LWP 22571] [New LWP 22565] warning: Can't read pathname for load map: Input/output error. [Thread debugging using libthread_db enabled] Core was generated by `/usr/bin/python /home/tpm/gst/releases/gst-qa-system/bin/insanity-pythondbusrun'. Program terminated with signal 5, Trace/breakpoint trap.
+ Trace 229262
The exception handler should either unconditionally schedule the stop from the main thread, or check if it is the main thread or not and marshal it into the main thread if not.
Largely obsoleted by the switch to writing tests in C in a separate process. It might still be possible to write tests in Python though, but I guess it's fair to say it won't be supported anymore. So I think this can be closed as obsolete.