After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 165445 - crash on closing (gopher)
crash on closing (gopher)
Status: RESOLVED FIXED
Product: epiphany
Classification: Core
Component: [obsolete] Backend:Mozilla
unspecified
Other Linux
: Normal critical
: ---
Assigned To: Epiphany Maintainers
Marco Pesenti Gritti
Depends on:
Blocks: 165420
 
 
Reported: 2005-01-27 20:34 UTC by Chris Lahey
Modified: 2005-03-14 19:13 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed fix. (594 bytes, patch)
2005-01-27 20:52 UTC, Chris Lahey
rejected Details | Review

Description Chris Lahey 2005-01-27 20:34:16 UTC
Open google.com using gopher protocol.  Close window.
Comment 1 Chris Lahey 2005-01-27 20:52:47 UTC
Created attachment 36615 [details] [review]
Proposed fix.
Comment 2 Christian Persch 2005-01-27 21:31:02 UTC
WARNING: NS_ENSURE_TRUE(mDocShell) failed, file nsDSURIContentListener.cpp, line 108

** ERROR **: file ../../../embed/mozilla/mozilla-embed-single.cpp: line 320
(void mozilla_embed_single_new_window_orphan_cb(GtkMozEmbedSingle*,
GtkMozEmbed**, unsigned int, EphyEmbedSingle*)): assertion failed: (chrome_mask
& GTK_MOZ_EMBED_FLAG_OPENASCHROME)
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread NaN (LWP 10577)

  • #0 trap_handler
    at ../../lib/ephy-debug.c line 109
  • #1 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #2 g_log
    from /usr/lib/libglib-2.0.so.0
  • #3 g_assert_warning
    from /usr/lib/libglib-2.0.so.0
  • #4 mozilla_embed_single_new_window_orphan_cb
    at ../../../embed/mozilla/mozilla-embed-single.cpp line 320
  • #5 gtk_marshal_VOID__POINTER_UINT
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 gtk_signal_emit
    from /usr/lib/libgtk-x11-2.0.so.0
  • #10 gtk_moz_embed_single_create_window
    at gtkmozembed2.cpp line 1398
  • #11 EmbedWindowCreator::CreateChromeWindow
    at EmbedWindowCreator.cpp line 66
  • #12 nsWindowWatcher::OpenWindowJS
    at nsWindowWatcher.cpp line 623
  • #13 nsWindowWatcher::OpenWindow
    at nsWindowWatcher.cpp line 457
  • #14 nsBrowserContentHandler::HandleContent
    at nsBrowserInstance.cpp line 813
  • #15 nsDocumentOpenInfo::DispatchContent
    at nsURILoader.cpp line 529
  • #16 nsDocumentOpenInfo::OnStartRequest
    at nsURILoader.cpp line 327
  • #17 nsGopherDirListingConv::OnStartRequest
    at nsGopherDirListingConv.cpp line 236
  • #18 nsGopherChannel::OnStartRequest
    at nsGopherChannel.cpp line 522
  • #19 nsInputStreamPump::OnStateStart
    at nsInputStreamPump.cpp line 381
  • #20 nsInputStreamPump::OnInputStreamReady
    at nsInputStreamPump.cpp line 337
  • #21 nsInputStreamReadyEvent::EventHandler
    at nsStreamUtils.cpp line 118
  • #22 PL_HandleEvent
    at plevent.c line 698
  • #23 PL_ProcessPendingEvents
    at plevent.c line 633
  • #24 nsEventQueueImpl::ProcessPendingEvents
    at nsEventQueue.cpp line 413
  • #25 nsAppShell::Spindown
    at nsAppShell.cpp line 191
  • #26 EmbedPrivate::PopStartup
    at EmbedPrivate.cpp line 551
  • #27 gtk_moz_embed_pop_startup
    at gtkmozembed2.cpp line 866
  • #28 mozilla_embed_single_finalize
    at ../../../embed/mozilla/mozilla-embed-single.cpp line 576
  • #29 g_object_interface_list_properties
    from /usr/lib/libgobject-2.0.so.0
  • #30 ephy_embed_shell_finalize
    at ../../embed/ephy-embed-shell.c line 116
  • #31 ephy_shell_finalize
    at ../../src/ephy-shell.c line 554
  • #32 g_object_interface_list_properties
    from /usr/lib/libgobject-2.0.so.0
  • #33 ephy_window_finalize
    at ../../src/ephy-window.c line 2726
  • #34 g_object_interface_list_properties
    from /usr/lib/libgobject-2.0.so.0
  • #35 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #36 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #37 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #38 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #39 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #40 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #41 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #42 main
    at ../../src/ephy-main.c line 216

Comment 3 Christian Persch 2005-01-27 21:36:54 UTC
Comment on attachment 36615 [details] [review]
Proposed fix.

Sorry, but this is just papering over the bug; I'd rather fix the real problem.
Comment 4 Christian Persch 2005-01-27 21:39:48 UTC
This is actually two separate problems:
1) Closing the window causes the shell to be finalised, embed shell to be
finalised, which does gtk_moz_embed_pop_startup, causing outstanding events to
be processed. One event triggers a window open call (#13), which we're in no
position to process at this time (since any open window will require a live shell).
2) Since there are no windows open, it emits the new_window signal on the
embed_single where ephy only opens chrome windows not ordinary window (a
g_assert, which is the cause of this crash).

Marco, do you have any idea how we would go about fixing (1) ?
Comment 5 Christian Persch 2005-03-14 19:13:59 UTC
This is fixed.