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 766545 - Pale Moon browser hang/deadlock on exit
Pale Moon browser hang/deadlock on exit
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: dont know
1.8.0
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-05-17 03:34 UTC by zaibatsu7
Modified: 2018-01-24 14:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gst_liblist (2.23 KB, text/plain)
2016-05-17 03:34 UTC, zaibatsu7
Details
gst_threadsdump (30.90 KB, text/plain)
2016-05-17 03:35 UTC, zaibatsu7
Details
gst_threadsdump (30.89 KB, text/plain)
2016-05-17 03:38 UTC, zaibatsu7
Details
gdb threads (2) (42.27 KB, text/plain)
2016-05-17 11:32 UTC, zaibatsu7
Details
console debug output (1.59 MB, application/x-bzip)
2016-05-17 11:36 UTC, zaibatsu7
Details
gdb threads (3) (26.15 KB, text/plain)
2016-05-17 12:20 UTC, zaibatsu7
Details
console debug output (2) no vaapi (1.83 MB, application/x-bzip)
2016-05-17 12:57 UTC, zaibatsu7
Details

Description zaibatsu7 2016-05-17 03:34:34 UTC
Created attachment 328036 [details]
gst_liblist

Hi. I'm using Firefox-based PaleMoon 26.2.2 x86 browser on Xubuntu 16.04 x64. Recently installed Gstreamer libs, all fine except on-exit deadlock with 100% load. With media.gstreamer.enabled=false no any issues (and no mp4 video), as before. Tried various combinations of good/bad/ugly plugin sets with same result.

Steps to reproduce: open youtube, start playing HD video, close browser.

More often occurs with vk.com videos (almost every time), less with YT.

Attached gdb threads output and dpkg list of installed libs.
Comment 1 zaibatsu7 2016-05-17 03:35:15 UTC
Created attachment 328037 [details]
gst_threadsdump
Comment 2 zaibatsu7 2016-05-17 03:38:04 UTC
Created attachment 328038 [details]
gst_threadsdump
Comment 3 Tim-Philipp Müller 2016-05-17 04:22:31 UTC
Could you install -dbg packages for GStreamer please, i.e. at least libgstreamer1.0-0-dbg gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-good-dbg ?

Could you also provide a compressed GST_DEBUG=*:6 log from when the deadlock happens on exit?
Comment 4 zaibatsu7 2016-05-17 11:32:40 UTC
Created attachment 328062 [details]
gdb threads (2)
Comment 5 zaibatsu7 2016-05-17 11:36:51 UTC
Created attachment 328063 [details]
console debug output

This is full console log from launch to exit, just ~12 secs. Enough to open-play-close-hang. Tested with vk.com's video since YT little harder to catch.
Comment 6 Víctor Manuel Jáquez Leal 2016-05-17 11:56:17 UTC
Mmmhh... You're decoding using gstreamer-vaapi.

To be sure, can you uninstall gstreamer-vaapi, install gst-libav and check if the deadlock still happens?
Comment 7 zaibatsu7 2016-05-17 12:08:11 UTC
(In reply to Víctor Manuel Jáquez Leal from comment #6)
> Mmmhh... You're decoding using gstreamer-vaapi.
> 
> To be sure, can you uninstall gstreamer-vaapi, install gst-libav and check
> if the deadlock still happens?

I've installed vaapi just yesterday to test whether hang with vaapi too, so it really shouldn't be a reason. One minute, I'll check.
Comment 8 zaibatsu7 2016-05-17 12:20:44 UTC
Created attachment 328070 [details]
gdb threads (3)

No, still locking, as expected. Attaching new dump, seems little differs from the latter.
Comment 9 zaibatsu7 2016-05-17 12:57:19 UTC
Created attachment 328073 [details]
console debug output (2) no vaapi
Comment 10 Tim-Philipp Müller 2018-01-24 14:43:04 UTC
I can see there's a thread doing gst_bus_timed_pop_filtered() - why is that still going? That's on your application's side and suggests to me the app hasn't stopped everything it should. This doesn't prevent pipelines from stopping though. Note that you will not receive state change messages for READY->NULL unless you explicitly disable auto flushing of the bus on the pipeline/playbin.

It looks like what's happening here is a deadlock between baseparse and typefind when switching or activating modes. (There seem to be multiple typefinds here?)

We have fixed some bugs related to this particular issue recently, so I'm going to close this in the hope that it's fixed.

Please re-open if it still happens with git master (>= 1.13), thanks!


(There's something strange in the stack traces: typefind emits the "have-type" signal, which somehow ends up in javascript (does the app hook into this? why?) and then it goes back into typefind's emit_have_type. As if it didn't return but something else is done inside the have-type signal callback.)
Comment 11 Tim-Philipp Müller 2018-01-24 14:51:08 UTC
Also, does Pale Moon still use GStreamer nowadays if it's based on Mozilla/FF?