Closed Bug 445339 Opened 16 years ago Closed 16 years ago

test_bug_406857.js / test_bug_395092.js crashed qm-centos5-moz2-01

Categories

(Toolkit :: Downloads API, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: mossop, Assigned: ted)

References

Details

(Keywords: crash, fixed1.9.0.2, intermittent-failure)

Attachments

(1 file)

../../../../_tests/xpcshell-simple/test_dm/unit/test_bug_406857.js: /builds/slave/linux/build/tools/test-harness/xpcshell-simple/test_all.sh: line 111:  1794 Segmentation fault      (core dumped) NATIVE_TOPSRCDIR="$native_topsrcdir" TOPSRCDIR="$topsrcdir" $xpcshell -s $headfiles -f $t $tailfiles 2>$t.log 1>&2
FAIL
../../../../_tests/xpcshell-simple/test_dm/unit/test_bug_406857.js.log:
>>>>>>>
*** Throwing trying to get CurProcD
*** Throwing trying to get MozBinD
*** test pending
*** Throwing trying to get TmpD
*** Throwing trying to get cachePDir
*** Throwing trying to get ProfLD
*** Throwing trying to get cachePDir
*** Throwing trying to get ProfLD
*** test pending
*** test finished
*** running event loop

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_rc_get_style_by_paths: assertion `GTK_IS_SETTINGS (settings)' failed

(process:1794): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(process:1794): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_enable_synchronized_configure: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_set_background: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gtk-CRITICAL **: gtk_paint_flat_box: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_type_hint: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_accept_focus: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_focus_on_map: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_modal_hint: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gtk-CRITICAL **: gtk_window_realize_icon: assertion `widget->window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_set_background: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_set_background: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_set_background: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_show: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_show: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_detach: assertion `GTK_IS_STYLE (style)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_detach: assertion `GTK_IS_STYLE (style)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_detach: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_detach: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(process:1794): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(process:1794): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_enable_synchronized_configure: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_set_background: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gtk-CRITICAL **: gtk_paint_flat_box: assertion `GTK_IS_STYLE (style)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_type_hint: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_accept_focus: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_focus_on_map: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_modal_hint: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gtk-CRITICAL **: gtk_window_realize_icon: assertion `widget->window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_back_pixmap: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gdk-CRITICAL **: gdk_drawable_get_colormap: assertion `GDK_IS_DRAWABLE (drawable)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_background: assertion `GDK_IS_WINDOW (window)' failed

(process:1794): Gtk-CRITICAL **: gtk_style_set_background: assertion `GTK_IS_STYLE (style)' failed

(process:1794): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(process:1794): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed

(process:1794): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: gtk_style_attach: assertion `window != NULL' failed

(process:1794): Gtk-CRITICAL **: _gtk_style_peek_property_value: assertion `GTK_IS_STYLE (style)' failed

<<<<<<<
what on earth is gtk doing in an xpcshell test case?

It'd be nice to be able to get a backtrace on this - perhaps someone in build can help?
Urgh, it looks like the machine was clobbered before I got a chance to look. Don't think we can get a backtrace now :(
We can keep this open in case it does it again I suppose.
Just looking into this, and noting to myself that the "*** test finished" in the log is not the do_test_finished from the testcase, but from here:
http://hg.mozilla.org/mozilla-central/index.cgi/annotate/15efbdafa0a7/tools/test-harness/xpcshell-simple/tail.js#l42

So the test harness starts pumping events, and then something breaks and it crashes, looks like before it ever hits the event listener in the test.
could we get a backtrace?
The linux unittest machines aren't even building with symbols currently:
http://hg.mozilla.org/build/buildbot-configs/index.cgi/file/64f02c011ff8/mozilla2-unittest/mozconfig-firefox-linux

We'd have to enable symbols at least, and even then I'm not sure what we'd do to catch the crash. We really do need a better way to handle this.

robcee, bhearsum: any ideas?
I realized that I had a Linux VM with a m-c tree built, so I rebuilt and ran this test a few times, and got a core, and a stack:

#0  0x417dfb21 in gtk_widget_style_get_valist ()
   from /usr/lib/libgtk-x11-2.0.so.0
#1  0x417dfd12 in gtk_widget_style_get () from /usr/lib/libgtk-x11-2.0.so.0
#2  0x409a5505 in nsLookAndFeel::InitLookAndFeel ()
   from ../../../../dist/bin/libxul.so
#3  0x409a58d8 in nsLookAndFeel::nsLookAndFeel ()
   from ../../../../dist/bin/libxul.so
#4  0x409a3c5f in nsLookAndFeelConstructor ()
   from ../../../../dist/bin/libxul.so
#5  0x40a4843e in nsGenericFactory::CreateInstance ()
   from ../../../../dist/bin/libxul.so
#6  0x40a76f5d in nsComponentManagerImpl::CreateInstanceByContractID ()
   from ../../../../dist/bin/libxul.so
#7  0x40a763d5 in nsComponentManagerImpl::GetServiceByContractID ()
   from ../../../../dist/bin/libxul.so
#8  0x40a433ee in nsGetServiceByContractID::operator() ()
   from ../../../../dist/bin/libxul.so
#9  0x40a426d5 in nsCOMPtr_base::assign_from_gs_contractid ()
   from ../../../../dist/bin/libxul.so
#10 0x40885ed0 in nsAlertsService::ShowAlertNotification ()
   from ../../../../dist/bin/libxul.so
#11 0x40880c9a in nsDownload::SetState () from ../../../../dist/bin/libxul.so
#12 0x408818b2 in nsDownload::OnStateChange ()
   from ../../../../dist/bin/libxul.so
#13 0x40850126 in nsWebBrowserPersist::OnStopRequest ()
   from ../../../../dist/bin/libxul.so
#14 0x402e1550 in nsStreamListenerTee::OnStopRequest ()
   from ../../../../dist/bin/libxul.so
#15 0x403342ff in nsHttpChannel::OnStopRequest ()
   from ../../../../dist/bin/libxul.so
#16 0x402c9b9c in nsInputStreamPump::OnStateStop ()
   from ../../../../dist/bin/libxul.so
#17 0x402c9e83 in nsInputStreamPump::OnInputStreamReady ()
   from ../../../../dist/bin/libxul.so
#18 0x40a64cb9 in nsInputStreamReadyEvent::Run ()
   from ../../../../dist/bin/libxul.so
#19 0x40a7a5a4 in nsThread::ProcessNextEvent ()
   from ../../../../dist/bin/libxul.so
#20 0x40a86e0d in NS_InvokeByIndex_P () from ../../../../dist/bin/libxul.so
#21 0x402ac160 in XPCWrappedNative::CallMethod ()
   from ../../../../dist/bin/libxul.so
#22 0x402b1982 in XPC_WN_CallMethod () from ../../../../dist/bin/libxul.so
#23 0x40085951 in js_Invoke () from ../../../../dist/bin/libmozjs.so
#24 0x4007eb9a in js_Interpret () from ../../../../dist/bin/libmozjs.so
#25 0x400852d5 in js_Execute () from ../../../../dist/bin/libmozjs.so
#26 0x40050a70 in JS_ExecuteScript () from ../../../../dist/bin/libmozjs.so

Looks like you're triggering the alerts service. Probably intermittent due to VM timing issues.
Looks like the same crash in test_bug_395092.js:
http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1216742107.1216745473.26323.gz#err0
Summary: test_bug_406857.js crashed qm-centos5-moz2-01 → test_bug_406857.js / test_bug_395092.js crashed qm-centos5-moz2-01
Shawn now that we have a stack can you take a look?
Assignee: nobody → sdwilsh
in theory the test should be able to set browser.download.manager.showAlertOnComplete to false before it starts testing...

i'm going to work w/ ted on chasing both ends...
I need to test this in my Linux VM, but all the tests still pass on Windows with this patch applied.
Comment on attachment 330812 [details] [diff] [review]
disable alert service notifications in the xpcshell tests

This appears to stop the crash for me. sdwilsh is probably not the best reviewer, seeing as how he's not around right now.
Attachment #330812 - Flags: review?(sdwilsh)
Comment on attachment 330812 [details] [diff] [review]
disable alert service notifications in the xpcshell tests

>diff --git a/toolkit/components/downloads/test/unit/head_download_manager.js b/toolkit/components/downloads/test/unit/head_download_manager.js

>+let ps = Cc['@mozilla.org/preferences-service;1'].getService();
>+ps instanceof Ci.nsIPrefBranch;

Just put the Ci.nsIPrefBranch in the call to getService().
Attachment #330812 - Flags: review?(sdwilsh) → review+
Pushed to mozilla-central:
http://hg.mozilla.org/mozilla-central/index.cgi/rev/4e82fbde2583

I'll file a followup on figuring out why the alerts service crashes like this.
Assignee: sdwilsh → ted.mielczarek
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Filed bug 446695 on the alerts service crash.
Product: Firefox → Toolkit
Checked into CVS:
Checking in toolkit/components/downloads/test/unit//head_download_manager.js;
/cvsroot/mozilla/toolkit/components/downloads/test/unit/head_download_manager.js
,v  <--  head_download_manager.js
new revision: 1.10; previous revision: 1.9
done
Keywords: fixed1.9.0.2
Whiteboard: [orange]
Whiteboard: [orange]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: