Closed Bug 344355 Opened 19 years ago Closed 16 years ago

testgtkembed crashes on exit if you close it using a window manager

Categories

(Core Graveyard :: Embedding: APIs, defect)

x86
Linux
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 372077

People

(Reporter: timeless, Assigned: timeless)

Details

Attachments

(1 file)

we're not 100% certain about the simplicity of this summary, or the general "windowmanager" statement, but... windowmanager tested: Ion 3 this is gtkembed trunk, x86, gtk2 gcc4.0.4 embedding profile minimal testgtkembed this is a stack showing that xpcom is shutting down while nested, which is bad and leads to a crash near the frames marked 62/63 #0 nsEventQueue::GetEvent (this=0x80cc168, mayWait=0, result=0xafd4f2b4) at nsAutoLock.h:250 #1 0xa6f34d39 in nsThread::ProcessNextEvent (this=0x80cc148, mayWait=0, result=0xafd4f2f8) at nsThread.h:109 #2 0xa6efb5b2 in NS_ProcessPendingEvents_P (thread=0x80cc148, timeout=4294967295) at nsThreadUtils.cpp:179 #3 0xa6efdf2c in NS_ShutdownXPCOM_P (servMgr=0x0) at nsXPComInit.cpp:734 #4 0xa69bd472 in XRE_TermEmbedding () at nsEmbedFunctions.cpp:160 #5 0xa69c3475 in EmbedPrivate::PopStartup () at EmbedPrivate.cpp:664 #6 0xa69c35ed in ~EmbedPrivate (this=0x80cb8d8) at EmbedPrivate.cpp:247 #7 0xa69c124a in gtk_moz_embed_destroy (object=0x8083b88) at gtkmozembed2.cpp:449 #8 0xa7952d7b in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #9 0xa7943fc9 in g_value_set_boxed () from /usr/lib/libgobject-2.0.so.0 #10 0xa7945afc in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #11 0xa7956626 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #12 0xa7957379 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #13 0xa7957529 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #14 0xa7ca5c7f in gtk_object_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #15 0xa7d7ee93 in gtk_widget_hide_on_delete () from /usr/lib/libgtk-x11-2.0.so.0 #16 0xa7948091 in g_object_run_dispose () from /usr/lib/libgobject-2.0.so.0 #17 0xa7ca5c2e in gtk_object_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #18 0xa7d76d75 in gtk_widget_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #19 0xa7bb74c0 in gtk_box_reorder_child () from /usr/lib/libgtk-x11-2.0.so.0 #20 0xa7bf2dd9 in gtk_container_foreach () from /usr/lib/libgtk-x11-2.0.so.0 #21 0xa7bf4d9e in gtk_container_unset_focus_chain () from /usr/lib/libgtk-x11-2.0.so.0 #22 0xa7952d7b in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #23 0xa7943fc9 in g_value_set_boxed () from /usr/lib/libgobject-2.0.so.0 #24 0xa7945afc in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #25 0xa7956626 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #26 0xa7957379 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #27 0xa7957529 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #28 0xa7ca5c7f in gtk_object_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #29 0xa7d7ee93 in gtk_widget_hide_on_delete () from /usr/lib/libgtk-x11-2.0.so.0 #30 0xa7948091 in g_object_run_dispose () from /usr/lib/libgobject-2.0.so.0 #31 0xa7ca5c2e in gtk_object_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #32 0xa7d76d75 in gtk_widget_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #33 0xa7bb3aaf in gtk_bin_get_type () from /usr/lib/libgtk-x11-2.0.so.0 #34 0xa7bf2dd9 in gtk_container_foreach () from /usr/lib/libgtk-x11-2.0.so.0 #35 0xa7bf4d9e in gtk_container_unset_focus_chain () from /usr/lib/libgtk-x11-2.0.so.0 #36 0xa7d8d5f3 in gtk_window_set_transient_for () from /usr/lib/libgtk-x11-2.0.so.0 #37 0xa7952d7b in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #38 0xa7943fc9 in g_value_set_boxed () from /usr/lib/libgobject-2.0.so.0 #39 0xa7945a0b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #40 0xa7956626 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #41 0xa7957379 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #42 0xa7957529 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #43 0xa7ca5c7f in gtk_object_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #44 0xa7d7ee93 in gtk_widget_hide_on_delete () from /usr/lib/libgtk-x11-2.0.so.0 #45 0xa7d862c2 in gtk_window_remove_embedded_xid () from /usr/lib/libgtk-x11-2.0.so.0 #46 0xa7948091 in g_object_run_dispose () from /usr/lib/libgobject-2.0.so.0 #47 0xa7ca5c2e in gtk_object_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #48 0xa7d76d75 in gtk_widget_destroy () from /usr/lib/libgtk-x11-2.0.so.0 #49 0x0804b9b9 in delete_cb (widget=0x80cc168, event=0x8151808, browser=0x809f220) at TestGtkEmbed.cpp:711 #50 0xa7c86aa0 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0 #51 0xa7945a0b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #52 0xa7955e83 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #53 0xa7957158 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #54 0xa7957529 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #55 0xa7d78624 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0 #56 0xa7c8545c in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #57 0xa7affbfa in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0 #58 0xa78d9e2c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #59 0xa78dd176 in g_main_context_check () from /usr/lib/libglib-2.0.so.0 #60 0xa78dd6f7 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #61 0xa6ec5b23 in nsAppShell::ProcessNextNativeEvent (this=0x82c5f58, mayWait=135053672) at nsAppShell.cpp:159 >#62 0xa6ed504e in nsBaseAppShell::DoProcessNextNativeEvent (this=0x8086270, mayWait=135053672) at nsBaseAppShell.cpp:144 ?#63 0xa6ed51ee in nsBaseAppShell::OnProcessNextEvent (this=0x82c5f58, thr=0x80cc148, mayWait=0, recursionDepth=0) at nsBaseAppShell.cpp:217 #64 0xa6f34d01 in nsThread::ProcessNextEvent (this=0x80cc148, mayWait=0, result=0xafd50b58) at nsThread.cpp:469 #65 0xa6efb5b2 in NS_ProcessPendingEvents_P (thread=0x80cc148, timeout=20) at nsThreadUtils.cpp:179 #66 0xa6ed4fff in nsBaseAppShell::NativeEventCallback (this=0x82c5f58) at nsBaseAppShell.cpp:119 #67 0xa6ec583b in nsAppShell::EventProcessorCallback (source=0x82c6f60, condition=G_IO_IN, data=0x82c5f58) at nsAppShell.cpp:78 #68 0xa79027ef in g_io_channel_unix_get_fd () from /usr/lib/libglib-2.0.so.0 #69 0xa78d9e2c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #70 0xa78dd176 in g_main_context_check () from /usr/lib/libglib-2.0.so.0 #71 0xa78dd537 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #72 0xa7c844e1 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #73 0x0804b4ea in main (argc=2, argv=0xafd51de4) at TestGtkEmbed.cpp:265
Attached patch per bsmedbergSplinter Review
using this with a second patch definitely fixes it. although i'm not sure if the second patch is absolutely necessary.
Attachment #228951 - Flags: review?(benjamin)
Attachment #228951 - Flags: review?(benjamin) → review+
i believe someone found a more correct fix
Whiteboard: DUPEME
I believe someone found exactly the same fix.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
Whiteboard: DUPEME
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: