mplayerplug-in 2.45 crashes mozilla 1.6 (mozilla just terminates, no error message or something), mplayerplug-in 2.40 works thou. Reproducible: Always Steps to Reproduce: 1. click on any url registered for mplayerplug-in 2. 3. Actual Results: mozilla crashes Expected Results: film starts to play Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 2.4.2 4-xfs-r2) ================================================================= System uname: 2.4.24-xfs-r2 i686 Celeron (Coppermine) Gentoo Base System version 1.4.3.13p1 Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O3 -pipe -mcpu=pentium3 -mmmx -msse -fforce-addr -fomit -frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-fu nctions=4 -fstack-protector" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/s hare/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dv ipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config / /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -O3 -pipe -mcpu=pentium3 -mmmx -msse -fforce-addr -fom it-frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign- functions=4 -fstack-protector" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox strict userpriv" GENTOO_MIRRORS="http://sunsite.cnlab-switch.ch/ftp/mirror/gentoo ftp://sunsite.c nlab-switch.ch/mirror/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl alsa apm avi berkdb clamav crypt dga doc dvd encode esd foomaticdb ga tos gdbm gif gphoto2 gpm gtk gtk2 gtkhtml imap imlib ipv6 java jikes jpeg kerber os libg++ libwww lufsusermount mad mbox mldonkeypango motif mozcalendar mozilla mozxmlterm mpeg ncurses nls oggvorbis opengl oss pam pcmcia pdflib perl png pyth on readline scanner sdl slang spell sse ssl tcltk tcpd tetex tiff truetype video _cards_mach64 x86 xface xfs xml2 xmms xv zlib"
correction, 2.11 works. 2.40 crashes too I'm using the default config with both versions
ok, after investigating a little into this, I figured out it's the gtk2 which crashes my mozilla. I've compiled mozilla with gtk1.2 (otherwise I can't use acrobat plugin) modifying the ebuild to use gtk1 solved the problem mplayerplug-in should check what version mozilla is compiled against (probably that other bug is already about this issue) I also disabled this gecko-sdk thing, why was this introduced in the first place? should be optional...
I have the same problem with any mozilla and mplayerplug-in version, all compiled with gtk2. When I start to play a video for the first time, it works. When I try for the second time, mozilla exits. If I start mozilla from the command line, I get theses messages : skuld@skuld# mozilla <------- first try, video plays ----------> (Gecko:20384): Gtk-CRITICAL **: file gtkwidget.c: line 1911 (gtk_widget_destroy): assertion `GTK_IS_WIDGET (widget)' failed ADDED URL: kill_bill-vol_ii-tlr_m480.mov code: 46 speed 2800 ADDED URL: kill_bill-vol_ii-tlr_m480.mov code: 46 speed 2800 <------- second try, mozilla exits ---------> /usr/bin/mozilla: line 324: 20384 Erreur de segmentation $mozbin "$@" skuld@skuld# emerge --info : Portage 2.0.50-r3 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 2.6.4-ck1) ================================================================= System uname: 2.6.4-ck1 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz Gentoo Base System version 1.4.4 Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -msse2 -mfpmath=sse,387 -fno-gcse" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -msse2 -mfpmath=sse,387 -fno-gcse" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache fixpackages sandbox" GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ http://gentoo.oregonstate.edu/distfiles" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X alsa apm arts avi berkdb bonobo cdr crypt cups dvd dvdr encode esd foomaticdb gdbm gif gnome gpm gtk gtk2 gtkhtml guile imlib ipv6 java jpeg kde ldap libg++ libwww linguas_fr mad mikmod mmx motif mozilla moznocompose moznoirc mpeg ncurses nls nptl oggvorbis opengl oss pam pda pdflib perl png ppds python qt quicktime readline samba scanner sdl slang spell sse ssl svga tcltk tcpd truetype usb x86 xml2 xmms xv zlib"
Oops, sorry, I didn't add comment to the good bug report You could forget what I wrote
Finally it's the correct bug report, bugzilla redirect me to another one when I have submitted my comment.
Mplayerplug-in 2.50 also crashes firefox, clip will play fine but as soon as it is over firefox closes. The only error message I've seen is similar to what Arnaud posted-widget error. Other than that no error messages & I don't get that error everytime. I haven't recompiled firefox without gtk2 support, I'd rather not have to go that route as I can always use 2.40. 2.40 works but I have xorg + xv problems but that's a known issue and another bug... Running xorg-x11: root@Luna jeff # emerge info Portage 2.0.50-r6 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 2.6.5-gentoo-r1) ================================================================= System uname: 2.6.5-gentoo-r1 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.4.9 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -funroll-loops -ftracer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -funroll-loops -ftracer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://212.219.247.19/sites/www.ibiblio.org/gentoo/ ftp://mirrors.tds.net/gentoo http://www.gtlib.cc.gatech.edu/pub/gentoo http://mirror.clarkson.edu/pub/distributions/gentoo/ http://csociety-ftp.ecn.purdue.edu/pub/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X acpi alsa avi berkdb cdr crypt cups dvd encode foomaticdb gdbm gif gpm gtk gtk2 imlib java jpeg libg++ libwww mad mikmod mmx motif mozilla mpeg ncurses nls nptl oggvorbis opengl pam pdflib perl png ppds python quicktime readline sdl slang spell sse ssl svga tcpd tiff truetype usb x86 xml2 xmms xv zlib"
I just tried 2.60-same problem.
I am using mplayerplug-in 2.6 with firefox. I get occasional crashes also. I have tried with mplayer 0.92 and 1.0_pre3
I have the very same problem with Jeff. I also use xorg-x11 and my browsers crash all the time as soon as the movie/music is over.
Okay, this problem either exists in mozilla or mplayerplug-in in my suspicion. For those interested in debugging this, please start running with debugging. For firefox users, you can do this with "firefox -g". When it crashes, please post a backtrace here if it is unique (include browser, plugin and mplayer version too please). I actually found firefox more stable when I was debugging, so you may have to work harder to get it to crash. Here is my first contribution: mplayerplug-in-2.60 mplayer-1.0_pre3-r5 mozilla-firefox-bin-0.8 #0 0x409e178a in strncasecmp () from /lib/libc.so.6 #1 0x412373de in isMms(char*) () from /opt/netscape/plugins/mplayerplug-in.so #2 0x4123e4e0 in gtkgui_save_enable(void*) () from /opt/netscape/plugins/mplayerplug-in.so #3 0x405976c3 in g_idle_dispatch () from /usr/lib/libglib-2.0.so.0 #4 0x405979c0 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0 #5 0x40595d68 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #6 0x40597e8b in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #7 0x4059635f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #8 0x402b992f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #9 0x08241faa in nsVoidKey::Clone() const () #10 0x085fc72f in nsSharedBufferHandle<unsigned short>* NS_AllocateContiguousHandleWithData<nsSharedBufferHandle<unsigned short>, nsAString>(nsSharedBufferHandle<unsigned short> const*, unsigned, nsAString const*) () #11 0x087949a7 in nsPrintSession::~nsPrintSession() () #12 0x08795187 in nsPrintSession::~nsPrintSession() () #13 0x08076471 in gtk_widget_grab_focus () #14 0x4097adc4 in __libc_start_main () from /lib/libc.so.6
Okay, I filed a bug with mplayerplug-in because I think I know where it is: Go to https://sourceforge.net/tracker/index.php?func=detail&aid=943207&group_id=71239&atid=530623 for more info. If I get more time later, I may try and track it down and fix it myself. Can anybody verify that this is the same bug they are seeing (with a backtrace). The easiest way I found to reproduce is to press the browsers forward and backward to load and unload a embedded page on apple.com until it happens.
K, went back up to mplayerplug-in-2.6.0. firefox-0.8-r3 mplayer-1.0_pre3-r5 Back to firefox exiting everytime (yes, everytime) after playing any clip. Running firefox -g I get the following error everytime: Gtk-CRITICAL **: file gtkwidget.c: line 5634 (gtk_widget_set _events): assertion `!GTK_WIDGET_REALIZED (widget)' failed. Joel, excuse my ignorance but I'm still somewhat of a noob-could you enlighten me on how to do a backtrace.
Well, here's some debug info. Info from firefox-0.8-r3 recompiled with debug enabled: For video/mpeg found plugin /opt/netscape/plugins/mplayerplug-in.so LoadPlugin() /opt/netscape/plugins/mplayerplug-in.so returned 881c628 nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=0 nsPluginNativeWindowGtk2: call SetWindow with xid=0xc00445 About to create new ws_info... About to create new xtbin of 1021 X 582 from 0x8785748... About to show xtbin(0x88dab48)... completed gtk_widget_show(0x88dab48) nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=0 nsPluginNativeWindowGtk2: call SetWindow with xid=0xe00001 nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=0 nsPluginNativeWindowGtk2: call SetWindow with xid=0xc00445 (firefox-bin:7569): Gtk-CRITICAL **: file gtkwidget.c: line 5634 (gtk_widget_set_events): assertion `!GTK_WIDGET_REALIZED (widget)' failed Program /usr/lib/MozillaFirefox/firefox-bin (pid = 7569) received signal 11. Stack: nsProfileLock::FatalSignalHandler(int)+0x00000052 [/usr/lib/MozillaFirefox/components/libprofile.so +0x00033752] gdb backtrace of firefox-bin: (gdb) backtrace #0 0xffffe410 in ?? () #1 0xbffff268 in ?? () #2 0x00000018 in ?? () #3 0x00000003 in ?? () #4 0x408e63f4 in poll () from /lib/libc.so.6 #5 0x406fcf43 in g_main_loop_get_context () from /usr/lib/libglib-2.0.so.0 #6 0x088e0dc8 in ?? () #7 0x00000003 in ?? () #8 0x00000018 in ?? () #9 0x406fb8a0 in g_main_context_release () from /usr/lib/libglib-2.0.so.0 #10 0x00000003 in ?? () #11 0x0808c928 in ?? () #12 0x088e0dc8 in ?? () #13 0x406feac0 in g_idle_remove_by_data () from /usr/lib/libglib-2.0.so.0 #14 0x0808c928 in ?? () #15 0x00000018 in ?? () #16 0x7fffffff in ?? () #17 0x088e0dc8 in ?? () #18 0x00000003 in ?? () #19 0x4075733c in ?? () from /usr/lib/libglib-2.0.so.0 #20 0x081dacd8 in ?? () #21 0x00000000 in ?? () #22 0xbffff2c4 in ?? () #23 0x00000018 in ?? () #24 0x7fffffff in ?? () #25 0x4075733c in ?? () from /usr/lib/libglib-2.0.so.0 #26 0x081dacd8 in ?? () #27 0x081dace0 in ?? () #28 0x00000000 in ?? () #29 0x406fcaa2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #30 0x406d9fd4 in ?? () from /usr/lib/libglib-2.0.so.0 #31 0x40594028 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #32 0x0810c914 in ?? () #33 0x00000000 in ?? () #34 0x00000000 in ?? () #35 0x4000af20 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #36 0x403dcbd1 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #37 0x0810c914 in ?? () #38 0x0810c908 in ?? () #39 0xbffff358 in ?? () #40 0x42463bfd in nsAppShell::Run () from /usr/lib/MozillaFirefox/components/libwidget_gtk2.so Hopefully that's useful to someone, alot of garbage there. This has certainly been a learning experience.
Jeff, Sorry I never got back to you about how to run firefox with debugging. Looks like you figured it out though. The backtrace that you posted doesn't look like it has mozillaplug-in code in the stack trace. So perhaps mozillaplug-in is triggering a firefox bug. Yeah, not much useful information from your stack trace. Your firefox build may have debug, but nothing else does, and it looks like we went way deep into all kinds of other libraries. I've been running mozilla-firefox-bin, so I may try mozilla-firefox with gtk2 enabled and see if I run into this problem all the time. And then try without gtk2 and see if it goes away. If I can verify what others are seeing I'm not exactly sure what I will do about it since mplayerplug-in supports several different browsers. Maybe just a ebuild warning that explains the brokenness of browsers with gtk2. I may also post information upstream to see if Kevin can do anything about it in mplayerplug-in itself. Anyways, the mozillplug-in developer posted a fix to the panic that I was running into. So I'll test that Monday, and then maybe patch.
Okay, I tried Kevin's patch, and now I get a new backtrace which I'll post upstream and see if Kevin tosses me another patch: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 7698)] 0x402a5fc3 in gtk_label_set_text () from /usr/lib/libgtk-x11-2.0.so.0 (gdb) bt #0 0x402a5fc3 in gtk_label_set_text () from /usr/lib/libgtk-x11-2.0.so.0 #1 0x4144a26f in gtkgui_message(void*) () from /opt/netscape/plugins/mplayerplug-in.so #2 0x405976c3 in g_idle_dispatch () from /usr/lib/libglib-2.0.so.0 #3 0x405979c0 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0 #4 0x40595d68 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #5 0x40597e8b in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #6 0x4059635f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #7 0x402b992f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #8 0x08241faa in nsVoidKey::Clone() const () #9 0x085fc72f in nsSharedBufferHandle<unsigned short>* NS_AllocateContiguousHandleWithData<nsSharedBufferHandle<unsigned short>, nsAString>(nsSharedBufferHandle<unsigned short> const*, unsigned, nsAString const*) () #10 0x087949a7 in nsPrintSession::~nsPrintSession() () #11 0x08795187 in nsPrintSession::~nsPrintSession() () #12 0x08076471 in gtk_widget_grab_focus () #13 0x4097adc4 in __libc_start_main () from /lib/libc.so.6
Created attachment 30792 [details] Live cvs ebuild for testing only Here is a live cvs version for mplayerplug-in for all you die hard testers out there. This won't go into portage, I'm just posting this so that other gentoo users can test the live tree.
All right. I'm assigning this bug to myself and renaming it from "mplayerplug-in 2.45 crashes mozilla 1.6" to "mplayerplug-in debugging" to more accurately reflect what I want to use this bug for. Could those who are experiencing the gtk2 crash issues please test with the cvs version? By the way, if you want to run plain mozilla through the debugger, do it this way: /usr/lib/mozilla/mozilla -g Then type or select "run" (depending on whether you have ddd or just gdb installed).
I'll be trying out the cvs shortly and will get back to you.
Created attachment 30809 [details] mplayerplug-in-cvs debug log from Delovely trailer on apple.com Well, I compiled the cvs ebuild, but it still crashed directly as the audio/video finished. I saw the debug=1 option in the mplayerplug-in.conf and decided to set it, and then played the delovely trailer from apple.com as an example. This again crashed at the end, and the log is captured from that. I haven't yet got firefox to run under gdb (perhaps because of mozilla-launcher, perhaps because it's a cvs edition, I don't know much about gdb). The most interesting thing I could find in this log is the last few lines: ----player thread: breaking read loop - Exiting ---player thread: tryagain = 0 ----player thread: playNode returned = 0 ----player thread: close done ----player thread: transitioning to next item ----player thread: entering loop ----player thread: looking for node to play ----player thread: nothing on the list to play ----player thread: playing url: http://... This suggests as though it's attempting to replay the clip after it's finished playing it, and after there's nothing on the list to play, so perhaps this is where the problem lies? I don't know if this kind of basic debugging is of any use, but I'll be happy to test out anything else people would like me to try...
Same results here too: firefox debug info: For video/mpeg found plugin /opt/netscape/plugins/mplayerplug-in.so LoadPlugin() /opt/netscape/plugins/mplayerplug-in.so returned 8a289a0 checking toolkit toolkitOk? mozilla = 2, plugin = 2 nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=0 nsPluginNativeWindowGtk2: call SetWindow with xid=0xa008c2 About to create new ws_info... About to create new xtbin of 1021 X 582 from 0x8871468... About to show xtbin(0x8a36c98)... completed gtk_widget_show(0x8a36c98) nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=0 nsPluginNativeWindowGtk2: call SetWindow with xid=0xc00001 nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=0 nsPluginNativeWindowGtk2: call SetWindow with xid=0xa008c2 (firefox-bin:12761): Gtk-CRITICAL **: file gtkwidget.c: line 5635 (gtk_widget_se t_events): assertion `!GTK_WIDGET_REALIZED (widget)' failed Program /usr/lib/MozillaFirefox/firefox-bin (pid = 12761) received signal 11. Stack: nsProfileLock::FatalSignalHandler(int)+0x00000052 [/usr/lib/MozillaFirefox/compo nents/libprofile.so +0x00033652] Sleeping for 5 minutes. Type 'gdb /usr/lib/MozillaFirefox/firefox-bin 12761' to attach your debugger to this thread. backtrace: (gdb) backtrace #0 0xffffe410 in ?? () #1 0xbffff258 in ?? () #2 0x00000018 in ?? () #3 0x00000003 in ?? () #4 0x408e73f4 in poll () from /lib/libc.so.6 #5 0x406fd0f3 in g_main_loop_get_context () from /usr/lib/libglib-2.0.so.0 #6 0x087fb1f0 in ?? () #7 0x00000003 in ?? () #8 0x00000018 in ?? () #9 0x40758a40 in g_thread_use_default_impl () from /usr/lib/libglib-2.0.so.0 #10 0x7fffffff in ?? () #11 0x00000000 in ?? () #12 0x40758dc0 in _g_debug_flags () from /usr/lib/libglib-2.0.so.0 #13 0x407581a8 in ?? () from /usr/lib/libglib-2.0.so.0 #14 0x00000003 in ?? () #15 0x0808c968 in ?? () #16 0x087fb1f0 in ?? () #17 0x406fecfb in g_idle_remove_by_data () from /usr/lib/libglib-2.0.so.0 #18 0x0808c968 in ?? () #19 0x00000018 in ?? () #20 0x7fffffff in ?? () #21 0x087fb1f0 in ?? () #22 0x00000003 in ?? () #23 0x00000000 in ?? () #24 0x00000000 in ?? () #25 0x406fb8cd in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0 #26 0xbffff2c4 in ?? () #27 0x40758a40 in g_thread_use_default_impl () from /usr/lib/libglib-2.0.so.0 #28 0x40758a20 in glib_mem_profiler_table () from /usr/lib/libglib-2.0.so.0 #29 0x40758dc0 in _g_debug_flags () from /usr/lib/libglib-2.0.so.0 #30 0x00000018 in ?? () #31 0x7fffffff in ?? () #32 0x407581a8 in ?? () from /usr/lib/libglib-2.0.so.0 #33 0x08204bf8 in ?? () #34 0x00000000 in ?? () #35 0x08204c00 in ?? () #36 0x406fcc52 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #37 0x406d9e84 in ?? () from /usr/lib/libglib-2.0.so.0 #38 0x40593f98 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #39 0x0810cae4 in ?? () #40 0x00000000 in ?? () #41 0x00000000 in ?? () #42 0x4000af20 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #43 0x403dc851 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #44 0x0810cae4 in ?? () #45 0x0810cad8 in ?? () #46 0xbffff358 in ?? () #47 0x42462b3d in nsAppShell::Run () from /usr/lib/MozillaFirefox/components/libwidget_gtk2.so Just in response to Mike-the only way I can get any useful output from gdb is to recompile firefox with debugging support (have to modify ebuild) then attach gdb to process when it crashes. I tried just doing: gdb /usr/lib/MozillaFirefox/firefox-bin (you have to link to binary not startup script) set args -g run but can't get any useful debugging info at all, when it crashes backtrace just gives me no stack (I'm assuming because firefox has already closed). Also was looking at firefox startup script and it mentions -x option for debugging, tried that with no luck either. BTW, I know very little about gdb-there must be a way to halt the program when it crashes so you can do a backtrace without recompiling it with debugging support. Thank god for ccache, only takes about 13min to recompile firefox.
Okay, I installed non-binary version of firefox with gtk2 enabled, and I can't replicate the problems being seen with the cvs version I posted. Also, could people post the versions of gtk+ they are using? thanks for working on this everyone. We'll get this thing stable yet.
GTK+2.4.1-just upgraded to this version a couple of days ago so was still having the problem with 2.4.0-r1.
Similarly: Firefox CVS (Currently Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a) Gecko/20040503 Firefox/0.8.0+) GTK+-2.4.1, bug found on GTK+-2.4.0 also Mplayer 1.0pre4-r1 Tried the latest CVS of mplayerplug-in again today, still crashes at the precise end of the clip. Dies for any trailer on apple.com (well, dies on just about anything). Still haven't got gdb debugging working (haven't recompiled with debug options yet either though)...
I upgraded my version of gtk and still can't reproduce this particular crash that people are seeing at the end of the video. Here is how to get debugging working. First make sure you have gdb: gdb --version Then run firefox like this: /usr/lib/MozillaFirefox/firefox -g -d gdb This will start firefox from within gdb. Then type "run" to start firefox running. When it crashes, type "bt" into gdb. This will give you a backtrace. Post that here along with the output messages that led up to that. If you add "debug=1" to your /etc/mplayerplug-in.conf that would be good too.
Well, I've been having difficulty getting the firefox-cvs to debug properly. I've compiled it with --enable-debug on, and then followed your debugging instructions. After typing run, several debug messages appear (many saying no debugging symbols found) then several seemingly about chrome startup and then: ++WEBSHELL == 3 ++DOMWINDOW == 3 Program terminated with signal SIGTRAP, Trace/breakpoint trap. The program no longer exists. (gdb) leaving me at the gdb prompt. Doing bt at this points returns "No stack.". No firefox window ever appeared, and I've haven't been able to get any further with it. As to the output from mplayerplug-in with debug=1 set, that's in my previous comment #19, and the associated attachment. If anyone can help with the debug problems or has anything else they'd like me to try, I'll give it a go...
Sigh.... Joel, for some reason my firefox will not display debugging info unless it's compiled in. I tried your way and here is what I get: jeff@Luna jeff $ /usr/lib/MozillaFirefox/firefox -g -d gdb /usr/lib/MozillaFirefox/run-mozilla.sh -g -d gdb /usr/lib/MozillaFirefox/firefox -bin MOZILLA_FIVE_HOME=/usr/lib/MozillaFirefox LD_LIBRARY_PATH=/usr/lib/MozillaFirefox:/usr/lib/MozillaFirefox/plugins:/usr/l ib/mre/mre-1.6 DISPLAY=:0.0 DYLD_LIBRARY_PATH=/usr/lib/MozillaFirefox:/usr/lib/mre/mre-1.6 LIBRARY_PATH=/usr/lib/MozillaFirefox:/usr/lib/MozillaFirefox/components:/us r/lib/mre/mre-1.6 SHLIB_PATH=/usr/lib/MozillaFirefox:/usr/lib/mre/mre-1.6 LIBPATH=/usr/lib/MozillaFirefox:/usr/lib/mre/mre-1.6 ADDON_PATH=/usr/lib/MozillaFirefox MOZ_PROGRAM=/usr/lib/MozillaFirefox/firefox-bin MOZ_TOOLKIT= moz_debug=1 moz_debugger=gdb /usr/bin/gdb /usr/lib/MozillaFirefox/firefox-bin -x /tmp/mozargs11549 GNU gdb 6.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"...(no debugging symbols found)... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /usr/lib/MozillaFirefox/firefox-bin warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code. (no debugging symbols found)...(no debugging symbols found)...(no debugging symb ols found)...(no debugging symbols found)...(no debugging symbols found)...(no d ebugging symbols found)...(no debugging symbols found)...(no debugging symbols f ound)...(no debugging symbols found)...(no debugging symbols found)...(no debugg ing symbols found)...(no debugging symbols found)...(no debugging symbols found) ...(no debugging symbols found)...(no debugging symbols found)...(no debugging s ymbols found)...(no debugging symbols found)...(no debugging symbols found)...(n o debugging symbols found)...checking toolkit toolkitOk? mozilla = 2, plugin = 2 (firefox-bin:11556): Gtk-CRITICAL **: file gtkwidget.c: line 5635 (gtk_widget_se t_events): assertion `!GTK_WIDGET_REALIZED (widget)' failed Program exited with code 013. (gdb) bt No stack. After looking thru this it's pretty much the same thing as doing gdb /usr/lib/MozillaFirefox/firefox-bin set args -x run Anyway, I assume it's giving me the no stack because firefox has already exited. When running firefox with debugging compiled in it sleeps for 5min when the crash occurs and gives you a chance to attach gdb to the process. 2 attachments: mplayerplug-in-cvs-1.log: mplayerplug-in debug log of crash The second one is a little different-I noticed that if you stop or pause a movie before it ends no crash occurs. So mplayerplug-in-cvs-2.log is a normal shutdown of mplayerplug-in.
Created attachment 31004 [details] mplayerplug-in-cvs-1.log
Created attachment 31005 [details] mplayerplug-in-cvs-2.log
*** Bug 50507 has been marked as a duplicate of this bug. ***
50507 has been declared a duplicate, but it is for playing an mp3 stream only, no video. Maybe the url attached is a simpler way to create the (same?) problem.
The link from the duplicate bug is: http://168.103.84.5:8000/file/von_bingen/instrumental_piece.mp3 I don't seem to have any special problems with it more than hangs once in a while which I'm working on trying to get a backtrace from. In terms of debugging. I don't have my browser compiled with debugging. I simply run it via gdb as I stated above: /usr/lib/MozillaFirefox/firefox -g -d gdb This puts me into a gdb prompt from which I can then run the browser. Also, I don't think this message: (firefox-bin:11556): Gtk-CRITICAL **: file gtkwidget.c: line 5635 (gtk_widget_se t_events): assertion `!GTK_WIDGET_REALIZED (widget)' failed or ones like it are a particular big problem. I think they are normal.
Well, I still haven't been able to replicate the crash at end of a video clip. It's apparently not the version of mplayerplug-in, or version of mozilla/firefox. Or even the version of gtk. Hmm. I think if I could replicate it locally, I could probably debug this, so why don't we go that route. I know at least Mike and Jeff can reproduce this. And you guys are getting this every time right? Mike, can you post emerge info. Can you both tell me again what version and also what use flags they were built with for the following: mplayer mplayerplug-in <browser> gtk+ gcc gcc-config Thanks guys.
Right, I can indeed reproduce this every single time (trust me, I wish I couldn't). If we're getting down to the gcc level, could this be because I'm using glibc with nptl enabled? I don't know much about this, a friend just told me it was "threading from the gods" so I set the use flag whenever I see it. 5:) Here's the information you asked for: Firefox Version: CVS 20040508 (from BMG) USE: +gnome +gtk2 -ipv6 +java -moznoxft +truetype -xinerama Mplayer Version: 1.0_pre4-r1 USE: -3dfx -3dnow +X +aalib +alsa -arts -debug -dga +directfb -dvb +dvd +encode -esd -fbcon -ggi +gif +gnome +gtk -ipv6 -joystick +jpeg -lirc -live -matroska -matrox +oggvorbis +opengl +oss -samba +sdl -sse +svga -theora +truetype -v4l -v4l2 +xmms +xv Mplayerplug-in Version: CVS Fri May 7 04:27:55 2004 BST USE: gtk+ Version: 2.4.1 (and also 1.2.10-r11) USE: -doc +jpeg -tiff gcc Version: 3.3.3 USE: +X -bootstrap -build -f77 -gcj -hardened +java -multilib +nls -objc -static -uclibc gcc-config Version: 1.3.4 USE: glibc Version: 2.3.2-r9 USE: -build +nls +nptl -pic and my emerge info is as follows: Portage 2.0.50-r6 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.2-r9, 2.6.6) ================================================================= System uname: 2.6.6 i686 AMD Athlon(tm) processor Gentoo Base System version 1.4.10 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=i686 -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=i686 -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox sfperms" GENTOO_MIRRORS="http://212.219.247.13/sites/www.ibiblio.org/gentoo/ http://212.219.247.14/sites/www.ibiblio.org/gentoo/ http://212.219.247.18/sites/www.ibiblio.org/gentoo/ http://212.219.247.19/sites/www.ibiblio.org/gentoo/ http://212.219.247.21/sites/www.ibiblio.org/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/overlays/bmg-overlay /usr/local/overlays/freedesktop" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X aalib alsa apm avi berkdb cdr crypt cups directfb divx4linux dvd encode foomaticdb gdbm gif gnome gpm gtk gtk2 guile ieee1394 imlib java jpeg ldap libg++ libwww mad mikmod motif mozilla mpeg ncurses nls nptl oggvorbis opengl oss pam pda pdflib perl png postgres python quicktime readline sdl slang spell ssl svga tcltk tcpd tetex truetype x86 xml2 xmms xv xvid zlib"
Everytime unfortunately. I'm not sure if it has any significance but I am also using nptl threading. * net-www/mozilla-firefox-0.8-r3 Install date: Wed May 5 22:16:34 2004 USE="java gtk2 truetype -xinerama -moznoxft -ipv6 -gnome" * media-video/mplayer-1.0_pre4-r1 Install date: Fri Apr 30 13:40:49 2004 USE="xmms jpeg sse sdl X svga oggvorbis 3dnow xv opengl truetype dvd gtk gif encode alsa -matroska -dga -oss -live -v4l2 -3dfx -v4l -matrox -ipv6 -theora -joystick -ggi -debug -aalib -gnome -lirc -samba -dvb -arts -directfb -esd -fbcon" * mplayerplug-in-cvs(20040505) * x11-libs/gtk+-1.2.10-r11 Install date: Tue Apr 13 21:45:00 2004 USE="nls -debug" * x11-libs/gtk+-2.4.1 Install date: Wed May 5 14:44:13 2004 USE="tiff jpeg -doc" * sys-devel/gcc-3.3.3-r3 Install date: Mon Apr 26 13:54:54 2004 USE="nls java X -static -uclibc -bootstrap -hardened -build -ada -multilib -g cj -f77 -objc" * sys-devel/gcc-config-1.3.5-r1 Install date: Sat May 8 01:51:22 2004 USE="" * sys-libs/glibc-2.3.3_pre20040420 Install date: Mon Apr 26 14:34:38 2004 USE="nls nptl -build -pic" root@Luna shared # emerge info Portage 2.0.50-r6 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040420-r0, 2.6.5-gentoo-r1) ================================================================= System uname: 2.6.5-gentoo-r1 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.4.12 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -funroll-loops -ftracer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -funroll-loops -ftracer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://212.219.247.19/sites/www.ibiblio.org/gentoo/ ftp://mirrors.tds.net/gentoo http://www.gtlib.cc.gatech.edu/pub/gentoo http://mirror.clarkson.edu/pub/distributions/gentoo/ http://csociety-ftp.ecn.purdue.edu/pub/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X acpi alsa avi berkdb cdr crypt cups dvd encode flac foomaticdb gdbm gif gpm gtk gtk2 imlib java jpeg libg++ libwww mad mikmod mmx motif mozilla mpeg ncurses nls nptl oggvorbis opengl pam pdflib perl png ppds python quicktime readline sdl slang spell sse ssl svga tcpd tiff truetype usb x86 xml2 xmms xv zlib"
Okay, I'm a dope. I should have seen this earlier I suppose, but yes, I'm fairly certain that it probably is the nptl build of glibc that is causing this problem. That seems to be the common denominator. Anybody willing to recompile their glibc without nptl to test this theory? If not, I understand. I'm usually fairly loathe to change my glibc without a security reason. I may try to reproduce on a less critical machine, but definitely not on my main workstation :-). glibc is at the core of everything, even more than the kernel. I will post this on the mplayerplug-in mailing list, and see if Kevin can throw us a patch into cvs. Thanks for your work everyone. I'll keep you posted.
I, too, am a glibc-nptl user, but I've found a new twist. I just converted to xorg-x11, and now the problem is gone. I've played the listed url (and a half-dozen others) severql times, and there are no failures. Note that I am a ~x86 user. I did the following: 0. Exited from wdm to stop X and logged in as root 1. emerge -C xfree 2. emerge xorg-x11 (several pre- and co-reqs came along, but I failed to note them. 3. Copied my XF86Config and edited xorg.conf (changed the font directories) 4. ran opengl-update xorg-x11 5. started wdm again No changes to firefox or mplayer or its plugin. Now this problem is gone. HTH.
I forgot: 4a. Ran fc-cache.
Hi, Well at least the nptl thing is a common link. Perhaps it will turn out to be the problem after all. Unfortunately I've been running xorg-x11 for a good two weeks+ (got it when it first got released ~x86) and am still experiencing the problem. So I don't know what could be going on there. I experienced the problems both before and after having xorg-x11. Unless the ebuild got altered between our two builds I can't see how the xorg-x11 server on its own could solve the problem. Any further news would be welcome. Joel, could you please post back if a patch goes into CVS? I've still got the CVS ebuild and am chomping at the bit to try out a fully working version of mplayerplug-in! 5:) Thanks...
I have also been using xorg-x11 pretty much since it was released yet I still have the problem.
Okay, I'm still working on reproducing the crash. I haven't recompiled glibc with NPTL yet because I'm still working on getting a working configuration on my test machine. I finally got it working. For some reason the default signal handling in gdb on my test machine was stopping gdb whenever a SIG32 was received. I figured out I need to tell gdb to ignore SIG32: (gdb) handle SIG32 nostop pass Slowly, but surely.
Here are some data points: I have an NPTL enabled glibc and recent versions of mplayerplug-in (post 2.45) will crash the browser (mozilla, firefox, galeon, epiphany) after playing a movie clip. I first tried the CVS version of mplayerplug-in but that did not solve the problem. I built glibc without NPTL and re-emerged mplayerplug-in-2.60. I then tried a movie clip at www.apple.com/trailers and the browser did not crash after playing the clip. I then rebuilt glibc with NPTL support and playing a video clip still did not cause the browser to crash. I then re-emerged mplayerplug-in-2.60 to build it against the installed NPTL glibc. With this, the problem returned. The browser crashed immediately after the movie clip finished playing. So it seems the problem lies with building mplayerplug-in with an NPTL enabled glibc. Hopefully this information will help you track down exactly where the problem is. In case it is useful, version 2.45 of mplayerplug-in works fine for me. Unfortunately, the ebuild for that has been removed. I have that version saved as a package. I know it was built with an NPTL enabled glibc but it may have been an older glibc version.
I rebuilt mplayerplug-in-2.45 with an NPTL-enabled glibc. That version of mplayerplug-in continues to work fine for me. Version 2.50 and 2.60 exhibit the crashing browser problem when compiled against an NPTL-enabled glibc.
More info. My laptop (2.6.6 with glibc nptl) works just fine with mplayer-1.0_pre4-r1 and mplayerplug-in-2.40 and firefox-0.8, but my desktop system (also 2.6.6 with glibc nptl) does not work reliably with any combination. I removed mplayer and mplayerplug-in and emerged the same versions as on the laptop (I had to use a saved version of mplayerplug-in-2.40, since 2.40 has been removed from portage). Now playing trailers results in perfect execution but firefox crapout after the trailer is complete. Same results with the latest mozilla-firefox-bin. I can't think what the difference is.
Why have all versions earlier than mplayerplug-in earlier than 2.60 been removed from portage? <= 2.45 is the only thing that seems to work for nptl systems!
startling breakthru. A friend noted that firefox-0.9rc1 is now available. I downloaded it, and mplayer now works properly (mplayerplug-in-2.60 and mplayer-1.0_pre4-r4). That may not help mozilla users, however.
Firefox 0.9rc1 does not fix this for me. It still crashes at the end of any clip. BTW, I'm on reiser4. There were strange reiser4 problems with gstreamer (fixed now in gstreamer), so I'm just adding this.
Here is what I just posted to the mplayerplug-in mailing list: ------ I was on vacation last week so I didn't have any time to work it. I installed Gentoo on a laptop with kernel 2.6.5, glibc with NPTL, mplayer 1.0_pre4 mplayerplug-in cvs (from today). With both firefox 0.8 and mozilla 1.4 I get a crash after video completes playing. The same thing happens with both browsers running in debug mode. However, in debug I do get the message: "Program exited with code 013." The video I am attempting to play is: www.apple.com/trailers/miramax/hero/ However, it's not specific to that video. ------- By the way, welcome to our bug Kevin ;-).
Here are somethings we need to run down 1. in the mplayerplug-in.conf file set debug=2 this will give very verbose info from the plugin 2. The interesting case to me is where we get this output ----player thread: nothing on the list to play And it should break out of the while loop and the next thing printed should be ----player thread: nothing to play And then ----player thread: callbacks complete But it seems to be reentering the while loop or not breaking out of it. It is possible that a compiler optimization flag is optimizing out the "break" Here is the code block if (local_list == NULL) { if (DEBUG) printf("----player thread: nothing on the list to play\n"); break; } //we have a node to play if (DEBUG) { printf("----player thread: chose url %s\n", local_list->url); } And that block of code is within a locked mutex.
Kevin, Here is what I get with debug=2: --------------------------------------------- ... mediaTime = 112.400002 in sendcommand in gtkgui_save_enable in isMms Save Enable called retrieved = 1 in getURLFilename READ: READ: Exiting... (End of file) ----player thread: breaking read loop - Exiting ---player thread: tryagain = 0 ----player thread: playNode returned = 0 ----player thread: close done ----player thread: transitioning to next item ----player thread: entering loop ----player thread: looking for node to play ----player thread: nothing on the list to play ----player thread: playing url: http://movies.apple.com/movies//miramax/hero/hero_m320.mov Program exited with code 013. (gdb) ------------------------- Hope that helps.
My output looks almost like Joels. No line with callback complete. Kevin, I compile mplayerplug-in CVS by hand, so I dont have any optimisation flags at all for it. mediaTime = 138.300003 in sendcommand in gtkgui_save_enable in isMms Save Enable called retrieved = 1 in getURLFilename READ: Successfully enabled DPMS in gtkgui_save_enable in isMms Save Enable called retrieved = 1 in getURLFilename READ: READ: Exiting... (End of file) ----player thread: breaking read loop - Exiting ---player thread: tryagain = 0 ----player thread: playNode returned = 0 ----player thread: close done ----player thread: transitioning to next item ----player thread: entering loop ----player thread: looking for node to play ----player thread: nothing on the list to play ----player thread: playing url: http://movies.apple.com/movies/fox/avp/avp-trailer3_m240.mov
BTW, epiphany also crashes at the end of any clip :-) And some debugging output from firefox 0.9 (compiled with debug info) (...) ----player thread: playing url: http://movies.apple.com/movies/fox/avp/avp_int_exclusive_m240.mov Program /usr/lib/MozillaFirefox/firefox-bin (pid = 22336) received signal 11. Stack: in gtkgui_save_enable in drawMediaProgress method _ZN13nsProfileLock18FatalSignalHandlerEi+0x0000005D [/usr/lib/MozillaFirefox/fir efox-bin +0x0002A59D] UNKNOWN 0xffffe420 _Z12playPlaylistPv+0x0000054E [/usr/lib/nsbrowser/plugins/mplayerplug-in.so +0x0 001E77E] UNKNOWN [/lib/libpthread.so.0 +0x00005ACC] #0 0xffffe410 in ?? () #1 0xbfffee58 in ?? () #2 0x00000018 in ?? () #3 0x00000009 in ?? () #4 0x4090f534 in poll () from /lib/libc.so.6 #5 0x40660f66 in g_main_loop_get_context () from /usr/lib/libglib-2.0.so.0 #6 0x406629ce in g_idle_remove_by_data () from /usr/lib/libglib-2.0.so.0 #7 0x40660a93 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #8 0x4037b263 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #9 0x42c65982 in nsAppShell::ReleaseGlobals () from /usr/lib/MozillaFirefox/components/libwidget_gtk2.so #10 0x423ca47a in nsAppShellService::AttemptingQuit () from /usr/lib/MozillaFirefox/components/libnsappshell.so #11 0x0805f419 in xre_main () #12 0x08059fc3 in main ()
oops, sorry
Created attachment 33533 [details, diff] Patch for locked mutex problem with mplayerplug-in under NPTL systems Ok, I *think* I may finally have tracked this one down. Thanks to Kevin's comments and a bit of checking through the source I discovered that the compiler does not optimize out the break. The procedure locks a mutex (not that I know what that means) early on, it then checks if there's anything to play and if not it breaks out of the main loop. It does *NOT* unlock the mutex before doing so. I'm *fairly* sure this is a bad thing(tm) and that fixing this will fix the problem. I've attached a patch, which I've tried and seems to solve the problem for me. It's a really bad hack, and basically uses a flag to delay leaving the loop until after the mutex has been unlocked. I didn't want to refer to local_list outside of the mutex lock, because I haven't got a clue what those mutex locks are doing and didn't want to disturb anything. Hopefully a better fix can be written (trying to unlock next to the break causes compiler errors, so I think the cleanup_pop function is in fact a macro of some kind), but this should work. If people could test this out for me, or someone add it into the official ebuild that would be absolutely fantastic. Hope this is it... Mike 5:)
Actually, it might be much simpler Change if (local_list == NULL) { if (DEBUG) printf("----player thread: nothing on the list to play\n"); break; } to (basically add the unlock and see if that does it). if (local_list == NULL) { if (DEBUG) printf("----player thread: nothing on the list to play\n"); pthread_mutex_unlock(&(local_td->instance->playlist_mutex)); break; } Let me know if this works and if so I'll merge into the main code.
Thanks for the suggestion, Sadly I had already tried that (once I had parse errors with the cleanup_pop code) but it didn't work (still crashes reliably) hence the reshuffling to get the cleanup_pop code in there as well. I can try out any other bits of test code, would it be alright to refer to the local_list variable after unlocking the mutex? If that's the case then you can simply move the check below the unlocking and it should all be fine (just a 5 line code move, no real changes). I don't really know what I'm locking which is why I went for the overly cautious fix... Mike 5:)
Just curious. Has anybody contacted the author upstream rather than guessing about the purpose of the mutex? According to another list, the author of mplayerplug-in is quite responsive to suggestions.
Ok, I committed a change to the mplayerplug-in tree that is very similar to Mike's patch. I basically renamed a couple of variables and fixed up a couple of things to my style. It should be available in a couple of hours from Source Forge. Collins yes, I have been contacted. :)
Mike, The patch you wrote really is not a bad hack pthread_cleanup_[push|pop] are macros and that is why they give the compiler so much grief when they are not at the same level. When that code was first merged in, I fought with it alot. What you did is perfectly valid for this case. Gold Star for doing the debug work. Kevin
Thank you Kevin & Mike, works here.
Thanks for merging that in Kevin, Code from CVS seems to work perfectly, I think this thing can finally be marked as resolved! 5:) Shame we just missed the 2.65 release by a day! Ahh well, least it'll be fixed in the next one...
mplayerplug-in 2.66 has been released with this fix in it
2.66 is in cvs