From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-04-02 11:27:57
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified Summary: GStreamer crash when using playbin2 and about_to_finish signal Classification: Bindings Product: gnome-perl Version: unspecified OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: Normal Component: general AssignedTo: gtk...@li... ReportedBy: squ...@fr... QAContact: gtk...@li... GNOME target: --- GNOME version: --- Created an attachment (id=157742) --> (https://bugzilla.gnome.org/attachment.cgi?id=157742) test case When using the about_to_finish signal of playbin2, the program randomly crash if it is busy (ie: a few seconds without running the mainloop) when the about_to_finish signal is fired by gstreamer. I could reproduce the problem in the attached test case, give it 2 files as arguments, it will skip toward the end of the first one, and then count to a very high number to make it busy. Most of the time, the program will randomly crash when the about_to_finish signal is fired. When it does not crash, you can see that the "about to finish" message is printed while the program was counting to a high number, which means the perl callback was called from a gstreamer thread. -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-04-16 22:53:03
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified --- Comment #1 from Torsten Schoenfeld <kaf...@gm...> 2010-04-16 22:52:52 UTC --- Created an attachment (id=158929) View: https://bugzilla.gnome.org/attachment.cgi?id=158929 Review: https://bugzilla.gnome.org/review?bug=614650&attachment=158929 Fix a threading bug in dGPERL_CLOSURE_MARSHAL_ARGS Previously, dGPERL_CLOSURE_MARSHAL_ARGS used the dSP macro to declare the stack pointer. But dSP involves accessing the my_perl pointer which might be invalid if we've been called from a thread other than the main one. To avoid this, manually declare SV **sp first and let GPERL_CLOSURE_MARSHAL_INIT initialize it after it has set up my_perl via PERL_SET_CONTEXT. This fixes the bug with your example program on my system. Quentin, can you verify this? -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-04-18 16:00:47
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified --- Comment #2 from Quentin Sculo <squ...@fr...> 2010-04-18 16:00:35 UTC --- Sadly, it still crashes for me. Both with the test-case and in my program. I tested it with the perl from mandriva 2010 : perl-5.10.1 (Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API) and with a brand new perl-5.12.0 (Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF) -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-04-24 21:07:37
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified Torsten Schoenfeld <kaffeetisch> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEEDINFO CC| |kaf...@gm... --- Comment #3 from Torsten Schoenfeld <kaf...@gm...> 2010-04-24 21:07:25 UTC --- How does it crash exactly, i.e. what do gdb and valgrind say? $ gdb perl > r test.pl ... segfault ... > bt $ valgrind --tool=memcheck --num-callers=50 perl test.pl -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-04-24 23:06:24
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified --- Comment #4 from Quentin Sculo <squ...@fr...> 2010-04-24 23:06:15 UTC --- Created an attachment (id=159490) --> (https://bugzilla.gnome.org/attachment.cgi?id=159490) a few examples of backtraces made with the patch above (Fix a threading bug in dGPERL_CLOSURE_MARSHAL_ARGS) it crashes ~50 % of the times -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-04-24 23:12:10
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified --- Comment #5 from Quentin Sculo <squ...@fr...> 2010-04-24 23:11:54 UTC --- Created an attachment (id=159491) --> (https://bugzilla.gnome.org/attachment.cgi?id=159491) valgrind output output of "valgrind --tool=memcheck --num-callers=50" (also made with the patch) I added the output of a case where it did not crash, for comparison. -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-05-30 15:24:49
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | general | unspecified Torsten Schoenfeld <kaffeetisch> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW Ever Confirmed|0 |1 --- Comment #6 from Torsten Schoenfeld <kaf...@gm...> 2010-05-30 15:24:34 UTC --- OK, this turned out to be way more intricate than expected. Basically, the problem is, as I'm sure you know already, that the about_to_finish signal handler is called from a new thread. And we're not prepared to handle this. See bug 620099 for my current stab at this. If you want to test this, make sure you pass the callback reference by name, like this: $player->signal_connect(about_to_finish => "main::about_to_finish", $file2); Passing code references (i.e., \&about_to_finish) between threads is not supported (by us, but also by perl). -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-05-30 15:28:10
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | GStreamer | unspecified Torsten Schoenfeld <kaffeetisch> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|general |GStreamer Depends on| |620099 -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-05-30 15:28:32
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | GStreamer | unspecified Torsten Schoenfeld <kaffeetisch> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #158929|0 |1 is obsolete| | -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2010-06-01 03:17:35
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | GStreamer | unspecified muppet <scott> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sc...@as... --- Comment #7 from muppet <sc...@as...> 2010-06-01 03:17:21 UTC --- As an experiment, can you try having the callback call g_idle_add() to defer execution of the callback action to the main loop? The simple approach would be sub about_to_finish { Glib::Idle->add (sub { ...}); } but i suspect that will crash for the same reasons. So, you might actually want to use a C/XS thunk to experiment. For example: $player->signal_connect (about_to_finish => 'thunk_to_mainloop', $file2); where 'thunk_to_mainloop' is the name of an XSub that calls g_idle_add() under the hook to ask the main loop to invoke a function. This way you get the code executed on a thread that we do know about. -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2011-05-15 16:02:40
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | GStreamer | unspecified --- Comment #8 from Torsten Schoenfeld <kaf...@gm...> 2011-05-15 16:02:28 UTC --- I've now implemented muppet's suggestion in attachment 187851 to bug 620099. It sort of fixes the problem. "Sort of" because it does not fix the test case as-is. The timeout source \&count needs to be disabled (or, at least, its duration needs to be shortened) for the new approach to work: with it still in place, the main loop is blocked from processing the about-to-finish invocation in time. Is that still good enough for your purposes, Quentin? -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2012-02-19 15:25:22
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | GStreamer | unspecified Bug 614650 depends on bug 620099, which changed state. Bug 620099 Summary: Make it safe to call into Glib from foreign threads https://bugzilla.gnome.org/show_bug.cgi?id=620099 What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |
From: gnome-perl (bugzilla.gnome.o. <bug...@gn...> - 2012-02-19 15:54:38
|
https://bugzilla.gnome.org/show_bug.cgi?id=614650 gnome-perl | GStreamer | unspecified Torsten Schoenfeld <kaffeetisch> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. |