User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20060204 Ubuntu/1.5.dfsg-4ubuntu6 Firefox/1.5 Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20060204 Ubuntu/1.5.dfsg-4ubuntu6 Firefox/1.5 https://launchpad.net/distros/ubuntu/+source/firefox/+bug/26436 reports that the python gtkmozembed support crashes on startup. This crash is not 100% reproduceable and not solely linked with the python plugin. You'll see simple Python and C test programs, both of which have been made to crash at least some of the time, so the problem is not strictly related to Python. Compiling without -O2 makes the crash much less likely. Investigating with a debugger shows that mWindow->mBaseWindow->GetMainWidget(getter_AddRefs(mozWidget)); (EmbedPrivate.cpp line 277) leaves mozWidget==0. The GetMainWidget being used is in nsWebBrowser.cpp l1452- and both mInternalWidget and mParentWidget are 0. Looking at the code (which I don't really understand properly) it would seem that these are supposed to be set by nsWebBrowser::Create but setting a breakpoint there didn't trigger so I think it's not being called. I don't know where (or indeed whether) it should be called. Reproducible: Sometimes Steps to Reproduce: Program received signal SIGSEGV, Segmentation fault. 0xb72a0fe1 in EmbedPrivate::Realize (this=0x82412e8, aAlreadyRealized=0xbfffe718) at EmbedPrivate.cpp:280 280 NS_STATIC_CAST(GdkWindow *, (gdb) bt #0 0xb72a0fe1 in EmbedPrivate::Realize (this=0x82412e8, aAlreadyRealized=0xbfffe718) at EmbedPrivate.cpp:280 #1 0xb729e9e9 in gtk_moz_embed_realize (widget=0x81ada88) at gtkmozembed2.cpp:606 #2 0xb7d9e663 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #3 0xb7d91165 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #4 0xb7d91798 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #5 0xb7da1a6c in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #6 0xb7da3238 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #7 0xb7da3589 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #8 0xb7abbbd1 in gtk_widget_realize () from /usr/lib/libgtk-x11-2.0.so.0 #9 0xb7abbd8f in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #10 0xb7ac5655 in gtk_window_reshow_with_initial_size () from /usr/lib/libgtk-x11-2.0.so.0 #11 0xb7d9e663 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #12 0xb7d91165 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #13 0xb7d91798 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #14 0xb7da1a6c in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #15 0xb7da3238 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #16 0xb7da3589 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #17 0xb7abbd30 in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0 #18 0xb7ac783e in gtk_window_get_position () from /usr/lib/libgtk-x11-2.0.so.0 #19 0xb7d9e663 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #20 0xb7d91165 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #21 0xb7d91798 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #22 0xb7da1a6c in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #23 0xb7da3238 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #24 0xb7da3589 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #25 0xb7abc4c6 in gtk_widget_show () from /usr/lib/libgtk-x11-2.0.so.0 #26 0xb794c145 in gtk_container_get_focus_hadjustment () from /usr/lib/libgtk-x11-2.0.so.0 #27 0xb7ab4fb7 in gtk_widget_show_all () from /usr/lib/libgtk-x11-2.0.so.0 #28 0xb7beee96 in init_gtk () from /usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so #29 0x080b5be9 in PyEval_EvalFrame () #30 0x080b739f in PyEval_EvalCodeEx () #31 0x080b75e5 in PyEval_EvalCode () #32 0x080d908c in PyRun_FileExFlags () #33 0x080d932c in PyRun_SimpleFileExFlags () #34 0x08055b03 in Py_Main () #35 0xb7e86ea2 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #36 0x08054f71 in _start () (gdb)