Closed Bug 377638 Opened 18 years ago Closed 18 years ago

firefox hangs in waitpid system call if java_vm is running

Categories

(Firefox :: General, defect)

x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED INVALID

People

(Reporter: n0dalus+firefox, Unassigned)

Details

(Keywords: hang, qawanted)

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.10) Gecko/20070223 Fedora/1.5.0.10-1.fc5 Firefox/1.5.0.10 Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.10) Gecko/20070223 Fedora/1.5.0.10-1.fc5 Firefox/1.5.0.10 Sometimes firefox hangs, and I strace it, getting: waitpid(-1, ... Which means it is waiting for all children to exit. This would all be fine, except when a Java applet is running, java_vm is a child process of Firefox. That means that instead of the waitpid call taking a fraction of a second waiting for some worker program I assume, it just hangs. This could concievably be a problem if any plugin or extension has generated a child program attached to firefox-bin, so I don't think it's a Java's fault. I thought I could "fix" it by killing java_vm, but that just made firefox crash. Reproducible: Didn't try Steps to Reproduce: I really am not sure what causes it. Java needs to be running. I will get a stack trace next time the bug occurs, and maybe do some poking.
After it happened again, I did a stack trace. In this case it looks like mplayer-plugin is invlolved somehow, but the stack trace still shows a waitpid being called from within Firefox. I'm not sure if it can be triggered without mplayer-plugin running. In case anyone happens to stumble into this issue, there is a way of un-hanging firefox. Attach gdb to firefox (gdb -p PID), change to one of the wait(pid) frames (in this case, I do 'frame 1' in gdb), and do 'ret 1', then exit gdb. (gdb) bt #0 0x00c5e402 in ?? () #1 0x0036cc5c in wait () from /lib/libpthread.so.0 #2 0x01a4a85e in mypopen () from /usr/lib/mozilla/plugins/mplayerplug-in.so #3 <signal handler called> #4 0x00c5e402 in ?? () #5 0x0036cceb in __waitpid_nocancel () from /lib/libpthread.so.0 #6 0x0762232d in fork_exec_with_pipes (intermediate_child=1, working_directory=0x0, argv=0x13d8c3b0, envp=0x0, close_descriptors=1, search_path=1, stdout_to_null=0, stderr_to_null=0, child_inherits_stdin=0, file_and_argv_zero=0, child_setup=0, user_data=0x0, child_pid=0x0, standard_input=0x0, standard_output=0x0, standard_error=0x0, error=0x0) at gspawn.c:1205 #7 0x0762281a in IA__g_spawn_async_with_pipes (working_directory=0x0, argv=0x13d8c3b0, envp=0x0, flags=G_SPAWN_SEARCH_PATH, child_setup=0, user_data=0x0, child_pid=0x0, standard_input=0x0, standard_output=0x0, standard_error=0x0, error=0x0) at gspawn.c:587 #8 0x076228ba in IA__g_spawn_async (working_directory=0x0, argv=0x13d8c3b0, envp=0x0, flags=G_SPAWN_SEARCH_PATH, child_setup=0, user_data=0x0, child_pid=0x0, error=0x0) at gspawn.c:105 #9 0x07debfbd in gnome_vfs_mime_application_launch_with_env () from /usr/lib/libgnomevfs-2.so.0 #10 0x07dec19c in gnome_vfs_mime_application_launch () from /usr/lib/libgnomevfs-2.so.0 ---Type <return> to continue, or q <return> to quit--- #11 0x00c1afb8 in nsMIMEInfoUnix::LaunchDefaultWithFile (this=0x1301a008, aFile=0x13305268) at ./unix/nsMIMEInfoUnix.cpp:181 #12 0x00c147ef in nsMIMEInfoBase::LaunchWithFile (this=0x1301a008, aFile=0x13305268) at nsMIMEInfoImpl.cpp:298 #13 0x00c101e3 in nsExternalAppHandler::OpenWithApplication (this=0x143cf5c8) at nsExternalHelperAppService.cpp:2314 #14 0x00c10a97 in nsExternalAppHandler::ExecuteDesiredAction (this=0x143cf5c8) at nsExternalHelperAppService.cpp:2040 #15 0x00c10bab in nsExternalAppHandler::SetWebProgressListener ( this=0x143cf5c8, aWebProgressListener=0xbe082d8) at nsExternalHelperAppService.cpp:1415 #16 0x00c0d69c in nsExternalAppHandler::CreateProgressListener ( this=0x143cf5c8) at nsExternalHelperAppService.cpp:2127 #17 0x00c1014d in nsExternalAppHandler::LaunchWithApplication ( this=0x143cf5c8, aApplication=0x0, aRememberThisPreference=0) at nsExternalHelperAppService.cpp:2429 #18 0x0078e859 in XPTC_InvokeByIndex () at ../../../../../../dist/include/xpcom/xptcstubsdef.inc:251 #19 0x00a5cb02 in XPCWrappedNative::CallMethod (ccx=@0xbf98040c, mode=XPCWrappedNative::CALL_METHOD) at xpcwrappednative.cpp:2156 #20 0x00a616bf in XPC_WN_CallMethod (cx=0x10b27b78, obj=0xd485438, argc=2, argv=0x1594d1c4, vp=0xbf98052c) at xpcwrappednativejsops.cpp:1451 #21 0x001b6a25 in js_Invoke (cx=0x10b27b78, argc=2, flags=0) at jsinterp.c:1187 ---Type <return> to continue, or q <return> to quit--- #22 0x001bd9e3 in js_Interpret (cx=0x10b27b78, pc=0xce7a264 ":", result=0xbf9807f8) at jsinterp.c:3609 #23 0x001b6a7e in js_Invoke (cx=0x10b27b78, argc=1, flags=2) at jsinterp.c:1207 #24 0x00a59088 in nsXPCWrappedJSClass::CallMethod (this=0x9f9cf18, wrapper=0x117e8fb8, methodIndex=3, info=0x9d02de0, nativeParams=0xbf980abc) at xpcwrappedjsclass.cpp:1410 #25 0x00a54edd in nsXPCWrappedJS::CallMethod (this=0x117e8fb8, methodIndex=3, info=0x9d02de0, params=0xbf980abc) at xpcwrappedjs.cpp:461 #26 0x0078f397 in PrepareAndDispatch (methodIndex=Variable "methodIndex" is not available. ) at xptcstubs_gcc_x86_unix.cpp:100 #27 0x01344663 in nsEventListenerManager::HandleEventSubType (this=0x12f72e28, aListenerStruct=0x139c3cc8, aDOMEvent=0x1441f788, aCurrentTarget=0xe936a90, aSubType=8, aPhaseFlags=7) at nsEventListenerManager.cpp:1687 #28 0x01345f3f in nsEventListenerManager::HandleEvent (this=0x12f72e28, aPresContext=0x10487020, aEvent=0xbf980f40, aDOMEvent=0xbf980dfc, aCurrentTarget=0xe936a90, aFlags=7, aEventStatus=0xbf980f88) at nsEventListenerManager.cpp:1788 #29 0x013f4017 in nsXULElement::HandleDOMEvent (this=0xec5e128, aPresContext=0x10487020, aEvent=0xbf980f40, aDOMEvent=0xbf980dfc, aFlags=7, aEventStatus=0xbf980f88) at nsXULElement.cpp:2153 #30 0x011a581b in PresShell::HandleDOMEventWithTarget (this=0x12592eb8, aTargetContent=0xec5e128, aEvent=0xbf980f40, aStatus=0xbf980f88) ---Type <return> to continue, or q <return> to quit--- at nsPresShell.cpp:6521 #31 0x012bac0c in nsButtonBoxFrame::DoMouseClick (this=0xf45a6d8, aEvent=0xbf981138, aTrustEvent=0) at nsButtonBoxFrame.cpp:179 #32 0x012b13a9 in nsButtonBoxFrame::MouseClicked (this=0xf45a6d8, aPresContext=0x10487020, aEvent=0xbf981138) at nsButtonBoxFrame.h:61 #33 0x012bae66 in nsButtonBoxFrame::HandleEvent (this=0xf45a6d8, aPresContext=0x10487020, aEvent=0xbf981138, aEventStatus=0xbf9815f0) at nsButtonBoxFrame.cpp:149 #34 0x011acf65 in PresShell::HandleEventInternal (this=0x12592eb8, aEvent=0xbf981138, aView=0x0, aFlags=1, aStatus=0xbf9815f0) at nsPresShell.cpp:6466 #35 0x011ad154 in PresShell::HandleEventWithTarget (this=0x12592eb8, aEvent=0xbf981138, aFrame=0xf45a6d8, aContent=0xec5e128, aFlags=1, aStatus=0xbf9815f0) at nsPresShell.cpp:6322 #36 0x013483fa in nsEventStateManager::CheckForAndDispatchClick ( this=0xf90b910, aPresContext=0x10487020, aEvent=0xbf981750, aStatus=0xbf9815f0) at nsEventStateManager.cpp:3049 #37 0x0134bd54 in nsEventStateManager::PostHandleEvent (this=0xf90b910, aPresContext=0x10487020, aEvent=0xbf981750, aTargetFrame=0xf45a6d8, aStatus=0xbf9815f0, aView=0x11812330) at nsEventStateManager.cpp:2027 #38 0x011ad096 in PresShell::HandleEventInternal (this=0x12592eb8, aEvent=0xbf981750, aView=0x11812330, aFlags=513, aStatus=0xbf9815f0) at nsPresShell.cpp:6497 ---Type <return> to continue, or q <return> to quit--- #39 0x011ad70d in PresShell::HandleEvent (this=0x12592eb8, aView=0x11812330, aEvent=0xbf981750, aEventStatus=0xbf9815f0, aForceHandle=1, aHandled=@0xbf9815e8) at nsPresShell.cpp:6261 #40 0x0141618c in nsViewManager::HandleEvent (this=0xa68cb88, aView=0x11812330, aEvent=0xbf981750, aCaptured=0) at nsViewManager.cpp:2557 #41 0x014180ce in nsViewManager::DispatchEvent (this=0xa68cb88, aEvent=0xbf981750, aStatus=0xbf9816fc) at nsViewManager.cpp:2246 #42 0x0140e4d7 in HandleEvent (aEvent=0xbf981750) at nsView.cpp:171 #43 0x002a084a in nsCommonWidget::DispatchEvent (this=0xc55b920, aEvent=0xbf981750, aStatus=@0xbf981798) at nsCommonWidget.cpp:219 #44 0x002991f9 in nsWindow::OnButtonReleaseEvent (this=0xc55b920, aWidget=0xde05af0, aEvent=0x167c08b0) at nsWindow.cpp:1611 #45 0x0029922e in button_release_event_cb (widget=0xde05af0, event=0x167c08b0) at nsWindow.cpp:3742 #46 0x0357658e in gtk_marshal_BOOLEAN__VOID () from /usr/lib/libgtk-x11-2.0.so.0 #47 0x004fdf8b in IA__g_closure_invoke (closure=0xdac0b30, return_value=0xbf981920, n_param_values=2, param_values=0xbf9819fc, invocation_hint=0xbf98190c) at gclosure.c:490 #48 0x0050ee3d in signal_emit_unlocked_R (node=0x9b738e8, detail=0, instance=0xde05af0, emission_return=0xbf981bbc, instance_and_params=0xbf9819fc) at gsignal.c:2438 #49 0x0051010f in IA__g_signal_emit_valist (instance=0xde05af0, signal_id=28, ---Type <return> to continue, or q <return> to quit--- detail=0, var_args=Variable "var_args" is not available. ) at gsignal.c:2207 #50 0x00510509 in IA__g_signal_emit (instance=0xde05af0, signal_id=28, detail=0) at gsignal.c:2241 #51 0x03661858 in gtk_widget_get_default_style () from /usr/lib/libgtk-x11-2.0.so.0 #52 0x0356ff63 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #53 0x035711b7 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #54 0x02bc985a in gdk_add_client_message_filter () from /usr/lib/libgdk-x11-2.0.so.0 #55 0x075f815d in IA__g_main_context_dispatch (context=0x9ac9628) at gmain.c:1916 #56 0x075fb3ef in g_main_context_iterate (context=0x9ac9628, block=1, dispatch=1, self=0x9b7f0d0) at gmain.c:2547 #57 0x075fb799 in IA__g_main_loop_run (loop=0x9cdb418) at gmain.c:2751 #58 0x03571634 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #59 0x0029f2c7 in nsAppShell::Run (this=0x9b93b60) at nsAppShell.cpp:139 #60 0x00685b70 in nsAppStartup::Run (this=0x9b9cbc0) at nsAppStartup.cpp:150 #61 0x080520eb in XRE_main (argc=1, argv=0xbf9823a4, aAppData=0x8068620) at nsAppRunner.cpp:2380 #62 0x0804d650 in main (argc=0, argv=0x76641c8) at nsBrowserApp.cpp:61 #63 0x005494e4 in __libc_start_main () from /lib/libc.so.6 #64 0x0804d5a1 in _start ()
Bug filed at mplayerplug-in site. http://sourceforge.net/tracker/index.php?func=detail&aid=1726363&group_id=71239&atid=530623 Closing this, since it's not a bug in Firefox.
Status: UNCONFIRMED → RESOLVED
Closed: 18 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.