Closed Bug 62995 Opened 25 years ago Closed 25 years ago

Destroying two windows in a row causes a crash

Categories

(Core Graveyard :: Embedding: GTK Widget, defect, P3)

x86
Linux

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: petter.sundlof, Assigned: blizzard)

Details

From Bugzilla Helper: User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.4.0-test12 i686) BuildID: M18 This happens with Galeon, but we're (speak to marco in #Galeon@irc.gnome.org) suspecting that it is a Mozilla/GTK embedding widget bug. Using M18 with Galeon releases and CVS from the past couple of months. When a window (blank; no page) is opened and closed (both via File>Close and via window manager(key combo and "X"), the following error message appears in the console: Gtk-WARNING **: gtk_signal_disconnect_by_data(): could not find handler containing data (0x8450DD0) Gtk-WARNING **: gtk_signal_disconnect_by_data(): could not find handler containing data (0x847F818) Gtk-WARNING **: gtk_signal_disconnect_by_data(): could not find handler containing data (0x848EF98) Gtk-WARNING **: gtk_signal_disconnect_by_data(): could not find handler containing data (0x843CF38) Gtk-WARNING **: gtk_signal_disconnect_by_data(): could not find handler containing data (0x842A360) Gdk-WARNING **: GdkWindow 0x1e00205 unexpectedly destroyed Nothing fatal, but when a window is opened and closed again, Galeon crashes with this message: Gtk-WARNING **: gtk_signal_disconnect_by_data(): could not find handler containing data (0x8474768) Gdk-ERROR **: BadWindow (invalid Window parameter) serial 23021 error_code 3 request_code 15 minor_code 0 Unfortunately I have been unable to debug this properly. Also I have not been able to test this with GtkMozEmbed. (Currently compiling Mozilla CVS, hoping it might be fixed there) Reproducible: Always Steps to Reproduce: 1.Start Galeon, with Mozilla M18 2.Open a new window, close it 3.Open a new window, close it Actual Results: Galeon (Mozilla embedding component?) crashes upon closing the window in step 3. Expected Results: Galeon (Mozilla embedding component?) should not crash.
Now using a December 15h source build (with gcc 2.95.2) of Mozilla with Galeon CVS from the same day. Mozilla build options (.mozconfig) were the following: ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-strip-libs ac_add_options --enable-cpp-rtti ac_add_options --disable-mailnews ac_add_options --enable-optimize The errors on the Open Window/Close Window bug is of course less verbose now: Gdk-WARNING **: GdkWindow 0x160021b unexpectedly destroyed (after one window opened and closed) Gdk-ERROR **: BadWindow (invalid Window parameter) serial 14333 error_code 3 request_code 15 minor_code 0 (after the second window has been opened and closed) So the error is still occurring.
Probably a dup of bug 62738 or one of its numerous related bugs. (crash when closing a window)
Depends on: 62738
I DO NOT think it is a duplicate, as I DO NOT get this with MOZILLA.
over to blizzard
Assignee: pavlov → blizzard
No longer depends on: 62738
Let me reiterate: this ONLY happens with GtkMozEmbed, like when using Galeon. It DOES occur when no home page/new window page is set -- read: no page has to be loading for it to happen.
Can you try this with a daily build? This looks like it's just M18 and I think it's a bug that I fixed.
I've been using milestones and nightly builds for a long time, and this bug has never gone away. Using 20001226 right now, same thing. Used -1214 around the 14th, same thing. Any propisition how I should debug this?
Get out a debugger and get me a stack trace. :)
Status: UNCONFIRMED → NEW
Ever confirmed: true
I don't know how to debug galeon... adding gdb before the galeon-bin execution in "galeon", as such: "exec gdb ./galeon-bin $@ else exec gdb $dist_bin/galeon-bin $@" results in the following gdb session: Starting program: /usr/local/bin/galeon-bin [New Thread 1024 (runnable)] [New Thread 2049 (runnable)] [New Thread 1026 (runnable)] [New Thread 2051 (runnable)] [New Thread 3076 (runnable)] [New Thread 4101 (runnable)] [New Thread 5126 (runnable)] Program received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 3076 (runnable)] 0x0 in ?? () only sometimes do I get as far as to get the crash recovery dialog up. Ah, strace works... I have a 1MB log here -- how should I sanitize the size?
OK, here is some GDB info, I hope I got everything: (01:37:51) odd@celibacy:~$ galeon GNU gdb 20001227 Copyright 2000 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"... (gdb) b main Breakpoint 1 at 0x805918f: file main.c, line 42. (gdb) run --sync Starting program: /usr/local/bin/galeon-bin --sync [New Thread 1024 (runnable)] [Switching to Thread 1024 (runnable)] Breakpoint 1, main (argc=2, argv=0xbffff934) at main.c:42 42 int i, bc = 0; (gdb) b gdk_x_error Breakpoint 2 at 0x40256cac: file gdk.c, line 1038. (gdb) c Continuing. [New Thread 2049 (runnable)] Delayed SIGSTOP caught for LWP 21347. [New Thread 1026 (runnable)] [New Thread 2051 (runnable)] Delayed SIGSTOP caught for LWP 21361. [New Thread 3076 (runnable)] Delayed SIGSTOP caught for LWP 21365. [New Thread 4101 (runnable)] [New Thread 5126 (runnable)] LWP 21365 exited. LWP 21361 exited. [New Thread 6151 (runnable)] [New Thread 7176 (runnable)] LWP 21366 exited. LWP 21367 exited. LWP 21368 exited. Gdk-WARNING **: GdkWindow 0x1600236 unexpectedly destroyed Breakpoint 2, gdk_x_error (display=0x8094ac8, error=0xbfffc914) at gdk.c:1038 1038 gdk.c: No such file or directory. in gdk.c (gdb) bt #0 gdk_x_error (display=0x8094ac8, error=0xbfffc914) at gdk.c:1038 #1 0x402c1549 in _XError () from /usr/X11R6/lib/libX11.so.6 #2 0x402bfda1 in _XReply () from /usr/X11R6/lib/libX11.so.6 #3 0x402b755b in XQueryTree () from /usr/X11R6/lib/libX11.so.6 #4 0x40d2d914 in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #5 0x40d2d7d9 in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #6 0x40d28bcf in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #7 0x40d2d5b5 in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #8 0x412f1b08 in nsCLiveconnectFactory type_info node () from /usr/local/mozilla/components/libgkview.so #9 0x412f1d06 in nsCLiveconnectFactory type_info node () from /usr/local/mozilla/components/libgkview.so #10 0x40ed2b5b in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #11 0x410d30ee in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #12 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #13 0x410d30ee in NSGetModule () #14 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #15 0x41081384 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #16 0x410d30ee in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #17 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #18 0x41081384 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #19 0x410d30ee in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #20 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #21 0x41081384 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #22 0x410d30ee in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #23 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #24 0x41081384 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #25 0x410d30ee in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #26 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #27 0x41081384 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #28 0x410d30ee in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #29 0x40ed0298 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #30 0x40f0fdb6 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #31 0x40ed8859 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #32 0x40ed87d6 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #33 0x40ef858f in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #34 0x40ef8257 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #35 0x405ae979 in nsCOMPtr_base::~nsCOMPtr_base () from /usr/local/mozilla/libxpcom.so #36 0x410ca17b in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #37 0x410c9cdf in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #38 0x405ae9d4 in nsCOMPtr_base::assign_with_AddRef () from /usr/local/mozilla/libxpcom.so #39 0x40dd11e6 in NSGetModule () from /usr/local/mozilla/components/libdocshell.so #40 0x40ddcd6a in NSGetModule () from /usr/local/mozilla/components/libdocshell.so #41 0x40dfe213 in NSGetModule () from /usr/local/mozilla/components/libwebbrwsr.so #42 0x40dfb9e8 in NSGetModule () from /usr/local/mozilla/components/libwebbrwsr.so #43 0x40dfd243 in NSGetModule () from /usr/local/mozilla/components/libwebbrwsr.so #44 0x40500d83 in GtkMozEmbedPrivate::Destroy () from /usr/local/mozilla/libgtkembedmoz.so #45 0x40502e35 in gtk_moz_embed_get_nsIWebBrowser () from /usr/local/mozilla/libgtkembedmoz.so #46 0x401bd8db in gtk_marshal_NONE__NONE (object=0x414a6290, func=0x40502d90 <gtk_moz_embed_get_nsIWebBrowser+1824>, func_data=0x0, args=0xbfffd45c) at gtkmarshal.c:312 #47 0x401e805f in gtk_signal_real_emit (object=0x414a6290, signal_id=1, params=0xbfffd45c) at gtksignal.c:1492 #48 0x401e6311 in gtk_signal_emit (object=0x414a6290, signal_id=1) at gtksignal.c:552 #49 0x401cd3fa in gtk_object_shutdown (object=0x414a6290) at gtkobject.c:255 #50 0x4021c581 in gtk_widget_shutdown (object=0x414a6290) at gtkwidget.c:4386 #51 0x401cd3a8 in gtk_object_destroy (object=0x414a6290) at gtkobject.c:246 #52 0x40215b06 in gtk_widget_destroy (widget=0x414a6290) at gtkwidget.c:1388 #53 0x40065f1f in gnome_dock_forall (container=0x414ebce8, include_internals=0, callback=0x8058bc8 <gtk_widget_destroy>, callback_data=0x0) at gnome-dock.c:756 #54 0x4018096f in gtk_container_foreach (container=0x414ebce8, callback=0x8058bc8 <gtk_widget_destroy>, callback_data=0x0) at gtkcontainer.c:1125 #55 0x4017f9d8 in gtk_container_destroy (object=0x414ebce8) at gtkcontainer.c:631 #56 0x401bd8db in gtk_marshal_NONE__NONE (object=0x414ebce8, func=0x4017f930 <gtk_container_destroy>, func_data=0x0, args=0xbfffd824) at gtkmarshal.c:312 #57 0x401e805f in gtk_signal_real_emit (object=0x414ebce8, signal_id=1, params=0xbfffd824) at gtksignal.c:1492 #58 0x401e6311 in gtk_signal_emit (object=0x414ebce8, signal_id=1) at gtksignal.c:552 #59 0x401cd3fa in gtk_object_shutdown (object=0x414ebce8) at gtkobject.c:255 #60 0x4021c581 in gtk_widget_shutdown (object=0x414ebce8) at gtkwidget.c:4386 #61 0x401cd3a8 in gtk_object_destroy (object=0x414ebce8) at gtkobject.c:246 #62 0x40215b06 in gtk_widget_destroy (widget=0x414ebce8) at gtkwidget.c:1388 #63 0x401613d1 in gtk_box_forall (container=0x414923e8, include_internals=0, callback=0x8058bc8 <gtk_widget_destroy>, callback_data=0x0) at gtkbox.c:776 #64 0x4018096f in gtk_container_foreach (container=0x414923e8, callback=0x8058bc8 <gtk_widget_destroy>, callback_data=0x0) at gtkcontainer.c:1125 #65 0x4017f9d8 in gtk_container_destroy (object=0x414923e8) at gtkcontainer.c:631 #66 0x401bd8db in gtk_marshal_NONE__NONE (object=0x414923e8, func=0x4017f930 <gtk_container_destroy>, func_data=0x0, args=0xbfffdbec) at gtkmarshal.c:312 #67 0x401e805f in gtk_signal_real_emit (object=0x414923e8, signal_id=1, params=0xbfffdbec) at gtksignal.c:1492 #68 0x401e6311 in gtk_signal_emit (object=0x414923e8, signal_id=1) at gtksignal.c:552 #69 0x401cd3fa in gtk_object_shutdown (object=0x414923e8) at gtkobject.c:255 #70 0x4021c581 in gtk_widget_shutdown (object=0x414923e8) at gtkwidget.c:4386 #71 0x401cd3a8 in gtk_object_destroy (object=0x414923e8) at gtkobject.c:246 #72 0x40215b06 in gtk_widget_destroy (widget=0x414923e8) at gtkwidget.c:1388 #73 0x4015d771 in gtk_bin_forall (container=0x414c7128, include_internals=0, callback=0x8058bc8 <gtk_widget_destroy>, callback_data=0x0) at gtkbin.c:276 #74 0x4018096f in gtk_container_foreach (container=0x414c7128, callback=0x8058bc8 <gtk_widget_destroy>, callback_data=0x0) at gtkcontainer.c:1125 #75 0x4017f9d8 in gtk_container_destroy (object=0x414c7128) at gtkcontainer.c:631 #76 0x4021f250 in gtk_window_destroy (object=0x414c7128) at gtkwindow.c:836 #77 0x4003f2a1 in gnome_app_destroy (object=0x414c7128) at gnome-app.c:261 #78 0x401bd8db in gtk_marshal_NONE__NONE (object=0x414c7128, func=0x4003f170 <gnome_app_destroy>, func_data=0x0, args=0xbfffdfe0) at gtkmarshal.c:312 #79 0x401e805f in gtk_signal_real_emit (object=0x414c7128, signal_id=1, params=0xbfffdfe0) at gtksignal.c:1492 #80 0x401e6311 in gtk_signal_emit (object=0x414c7128, signal_id=1) at gtksignal.c:552 #81 0x401cd3fa in gtk_object_shutdown (object=0x414c7128) at gtkobject.c:255 #82 0x4021c581 in gtk_widget_shutdown (object=0x414c7128) at gtkwidget.c:4386 #83 0x4021eb9f in gtk_window_shutdown (object=0x414c7128) at gtkwindow.c:656 #84 0x401cd3a8 in gtk_object_destroy (object=0x414c7128) at gtkobject.c:246 #85 0x40215b06 in gtk_widget_destroy (widget=0x414c7128) at gtkwidget.c:1388 #86 0x0805b07a in browser_close (browser=0x414a61e0) at browser.c:861 #87 0x080608e9 in window_delete_cb (widget=0x414c7128, event=0x8230500, browser=0x414a61e0) at browser_callbacks.c:84 #88 0x401bd5bd in gtk_marshal_BOOL__POINTER (object=0x414c7128, func=0x8060898 <window_delete_cb>, func_data=0x414a61e0, args=0xbfffe400) at gtkmarshal.c:28 #89 0x401e8b2c in gtk_handlers_run (handlers=0x4161f408, signal=0xbfffe3bc, object=0x414c7128, params=0xbfffe400, after=0) at gtksignal.c:1917 #90 0x401e8026 in gtk_signal_real_emit (object=0x414c7128, signal_id=29, params=0xbfffe400) at gtksignal.c:1477 #91 0x401e6311 in gtk_signal_emit (object=0x414c7128, signal_id=29) at gtksignal.c:552 #92 0x40218e34 in gtk_widget_event (widget=0x414c7128, event=0x8230500) at gtkwidget.c:2860 #93 0x401bc6e7 in gtk_main_do_event (event=0x8230500) at gtkmain.c:681 #94 0x40d24b6d in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #95 0x40262bae in gdk_event_dispatch (source_data=0x0, current_time=0xbfffe7a4, user_data=0x0) at gdkevents.c:2129 #96 0x403e091b in g_main_dispatch (dispatch_time=0xbfffe7a4) at gmain.c:656 #97 0x403e0edf in g_main_iterate (block=1, dispatch=1) at gmain.c:877 #98 0x403e105d in g_main_run (loop=0x414cee38) at gmain.c:935 #99 0x401bc20d in gtk_main () at gtkmain.c:476 #100 0x080595a4 in main (argc=2, argv=0xbffff934) at main.c:210 #101 0x406a2aa7 in __libc_start_main (main=0x8059180 <main>, argc=2, argv=0xbffff934, init=0x80571e8 <_init>, fini=0x8074d88 <_fini>, rtld_fini=0x4000acb0 <_dl_fini>, stack_end=0xbffff92c) at ../sysdeps/generic/libc-start.c:92
You'll have to tell me if the former post is enough if we're ever going to get anywhere with this bug.
Just compiled today's (20001230) Mozilla build, and Galeon against that -- I now can open window, close window, open window, close window, without it crashing, yippeee :) Although after closing several windows I get warnings (but at least it doesn't crash anymore) like these : Gtk-WARNING **: invalid class type `(unknown)' in cast to `GtkCheckMenuItem' Gtk-WARNING **: invalid cast from `(unknown)' to `GtkCheckMenuItem' #Galeon peeps are saying it might be Galeon, though.
Yeah, those errors look like galeon to me. We don't use GtkCheckMenuItems anywhere. If you think this is fixed then mark it so.
It seems like it is. Was there anything in particular that you changed? I am marking this bug FIXED now.
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
I fixed some focus problems. I don't know if that would affect it or not.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.