After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 686985 - [pulsesrc] Assertion 'm' failed at pulse/thread-mainloop.c:166, function pa_threaded_mainloop_lock(). Aborting.
[pulsesrc] Assertion 'm' failed at pulse/thread-mainloop.c:166, function pa_t...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.0.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-10-27 15:06 UTC by Oleksij Rempel
Modified: 2012-10-30 23:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test case (815 bytes, text/plain)
2012-10-27 15:06 UTC, Oleksij Rempel
  Details
pulsesrc: don't assert in get_time() when called after shutdown (1.02 KB, patch)
2012-10-27 23:10 UTC, Tim-Philipp Müller
committed Details | Review

Description Oleksij Rempel 2012-10-27 15:06:10 UTC
Created attachment 227402 [details]
test case

I get this error if pulsesrc and then complete pipeline is set to NULL.
See testapp in attachment.
Comment 1 Tim-Philipp Müller 2012-10-27 23:10:07 UTC
Created attachment 227431 [details] [review]
pulsesrc: don't assert in get_time() when called after shutdown

Bail out if mainloop == NULL. If this is correct, even so without additional locking, I am not sure.
Comment 2 Tim-Philipp Müller 2012-10-27 23:10:58 UTC
For what it's worth, the recommended use pattern is just

 - gst_element_send_event (pipeline, gst_event_eos ());
 - wait for EOS message on pipeline bus
 - gst_element_set_state (pipeline, GST_STATE_NULL);
Comment 3 Tim-Philipp Müller 2012-10-30 23:28:46 UTC
Well, it's better than crashing, and there isn't much locking in other places either, so:

 commit cd9706e9e94185d94d524b86552fe8613eb754fb
 Author: Tim-Philipp Müller <tim@centricular.net>
 Date:   Sun Oct 28 00:07:46 2012 +0100

    pulsesrc: don't assert in get_time() when called after shutdown
    
    Which might happen if the source gets set to NULL state before
    the rest of the pipeline.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=686985