Closed Bug 1238043 Opened 8 years ago Closed 8 years ago

web-platform-tests not post-processing stacks correctly

Categories

(Testing :: web-platform-tests, defect)

defect
Not set
normal

Tracking

(firefox52 fixed)

RESOLVED FIXED
mozilla52
Tracking Status
firefox52 --- fixed

People

(Reporter: bkelly, Assigned: jgraham)

Details

Attachments

(1 file)

See this try build error:

  https://treeherder.mozilla.org/logviewer.html#?job_id=15219070&repo=try

This stack is completely bogus:

 08:52:07     INFO - PROCESS | 1670 | Assertion failure: !mFetchEventCount, at /builds/slave/try-m64-d-00000000000000000000/build/src/dom/workers/ServiceWorkerPrivate.cpp:1604
 08:52:07     INFO - PROCESS | 1670 | ### ### ServiceWorkerPrivate::ReleaseToken() calling TerminateWorker()
 08:52:07     INFO - PROCESS | 1670 | ### ### [0x125e4df60] ServiceWorkerPrivate::TerminateWorker()
 08:52:07     INFO - PROCESS | 1670 | #01: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x26b3e61]
 08:52:07     INFO - PROCESS | 1670 | #02: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x26a8e4c]
 08:52:07     INFO - PROCESS | 1670 | #03: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x26b51b9]
 08:52:07     INFO - PROCESS | 1670 | #04: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x73557b]
 08:52:07     INFO - PROCESS | 1670 | #05: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x54f0d0]
 08:52:07     INFO - PROCESS | 1670 | #06: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x50cbcb]
 08:52:07     INFO - PROCESS | 1670 | #07: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x50b7a2]
 08:52:07     INFO - PROCESS | 1670 | #08: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x505d04]
 08:52:07     INFO - PROCESS | 1670 | #09: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x4d3bec]
 08:52:07     INFO - PROCESS | 1670 | #10: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x4d3f3b]
 08:52:07     INFO - PROCESS | 1670 | #11: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x510865]
 08:52:07     INFO - PROCESS | 1670 | #12: XRE_AddJarManifestLocation[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0xec495]
 08:52:07     INFO - PROCESS | 1670 | #13: NS_UTF16ToCString[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x12c63f]
 08:52:07     INFO - PROCESS | 1670 | #14: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x2928754]
 08:52:07     INFO - PROCESS | 1670 | #15: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x298fefd]
 08:52:07     INFO - PROCESS | 1670 | #16: __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x80a01]
 08:52:07     INFO - PROCESS | 1670 | #17: __CFRunLoopDoSources0[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x72b8d]
 08:52:07     INFO - PROCESS | 1670 | #18: __CFRunLoopRun[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x721bf]
 08:52:07     INFO - PROCESS | 1670 | #19: CFRunLoopRunSpecific[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x71bd8]
 08:52:07     INFO - PROCESS | 1670 | #20: RunCurrentEventLoopInMode[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x3256f]
 08:52:07     INFO - PROCESS | 1670 | #21: ReceiveNextEventCommon[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x322ea]
 08:52:07     INFO - PROCESS | 1670 | #22: _BlockUntilNextEventMatchingListInModeWithFilter[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x3212b]
 08:52:07     INFO - PROCESS | 1670 | #23: _DPSNextEvent[/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x918ab]
 08:52:07     INFO - PROCESS | 1670 | #24: -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x90e58]
 08:52:07     INFO - PROCESS | 1670 | #25: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x298f1c6]
 08:52:07     INFO - PROCESS | 1670 | #26: -[NSApplication run][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x86af3]
 08:52:07     INFO - PROCESS | 1670 | #27: mac_plugin_interposing_child_OnShowCursor[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x2990685]
 08:52:07     INFO - PROCESS | 1670 | #28: XRE_RunAppShell[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x35bf161]
 08:52:07     INFO - PROCESS | 1670 | #29: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x5109e2]
 08:52:07     INFO - PROCESS | 1670 | #30: mozilla::LoadInfo::MaybeIncreaseTainting(unsigned int)[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x4d33bc]
 08:52:07     INFO - PROCESS | 1670 | #31: XRE_InitChildProcess[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/XUL +0x35beadf]
 08:52:07     INFO - PROCESS | 1670 | #32: start[/builds/slave/test/build/application/NightlyDebug.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container +0x414c]
The correct stack after running tools/fix_stacks_using_bbsyms.py is:

#01: mozilla::dom::workers::ServiceWorkerInfo::Release() [memory/mozalloc/mozalloc.h:210]
#02: mozilla::dom::workers::ServiceWorkerManager::LoadRegistration(mozilla::dom::ServiceWorkerRegistrationData const&) [mfbt/RefPtr.h:275]
#03: mozilla::dom::workers::ServiceWorkerManagerChild::RecvNotifyRegister(mozilla::dom::ServiceWorkerRegistrationData const&) [mfbt/RefPtr.h:362]
#04: mozilla::dom::PServiceWorkerManagerChild::OnMessageReceived(IPC::Message const&) [obj-firefox/ipc/ipdl/PServiceWorkerManagerChild.cpp:310]
#05: mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) [obj-firefox/ipc/ipdl/PBackgroundChild.cpp:1721]
#06: mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) [ipc/glue/MessageChannel.h:533]
#07: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&) [ipc/glue/MessageChannel.cpp:1304]
#08: mozilla::ipc::MessageChannel::OnMaybeDequeueOne() [ipc/glue/MessageChannel.cpp:1275]
#09: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) [ipc/chromium/src/base/message_loop.cc:365]
#10: MessageLoop::DoWork() [ipc/chromium/src/base/message_loop.cc:459]
#11: mozilla::ipc::DoWorkRunnable::Run() [ipc/glue/MessagePump.cpp:221]
#12: nsThread::ProcessNextEvent(bool, bool*) [xpcom/glue/nsCOMPtr.h:403]
#13: NS_ProcessPendingEvents(nsIThread*, unsigned int) [xpcom/glue/nsThreadUtils.cpp:239]
#14: nsBaseAppShell::NativeEventCallback() [widget/nsBaseAppShell.cpp:98]
#15: nsAppShell::ProcessGeckoEvents(void*) [widget/cocoa/nsAppShell.mm:388]
#16: CoreFoundation + 0x80a01
#17: CoreFoundation + 0x72b8d
#18: CoreFoundation + 0x721bf
#19: CoreFoundation + 0x71bd8
#20: HIToolbox + 0x3256f
#21: HIToolbox + 0x322ea
#22: HIToolbox + 0x3212b
#23: AppKit + 0x918ab
#24: AppKit + 0x90e58
#25: -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] [widget/cocoa/nsAppShell.mm:121]
#26: AppKit + 0x86af3
#27: nsAppShell::Run() [xpcom/glue/nsCOMPtr.h:536]
#28: XRE_RunAppShell [toolkit/xre/nsEmbedFunctions.cpp:789]
#29: mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:259]
#30: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:520]
#31: XRE_InitChildProcess [xpcom/base/nsAutoPtr.h:195]
#32: content_process_main(int, char**) [ipc/contentproc/plugin-container.cpp:237]
This seems like a problem where the underlying issue is that there's some step in the process that is required, but that I don't know is required, and so didn't implement. All that wpt does right now is to call into mozcrash. Is that not enough?
Flags: needinfo?(ted)
Is there any way we could get this fixed?  I've been wasting hours trying to get the right combination of scripts and symbols to fix the stacks in bug 1253050.
Comment on attachment 8800598 [details]
Bug 1238043 - Enable assert stack fixup for wpt,

https://reviewboard.mozilla.org/r/85500/#review84522

::: testing/mozharness/scripts/web_platform_tests.py:145
(Diff revision 1)
>                  "--log-errorsummary=%s" % os.path.join(dirs["abs_blob_upload_dir"],
>                                                         "wpt_errorsummary.log"),
>                  "--binary=%s" % self.binary_path,
>                  "--symbols-path=%s" % self.query_symbols_url(),
> -                "--stackwalk-binary=%s" % self.query_minidump_stackwalk()]
> +                "--stackwalk-binary=%s" % self.query_minidump_stackwalk(),
> +                "--stackfix-dir=%s" % os.path.join(dirs["abs_test_install_dir"], "bin")]

I was going to say that you could use this directly from the source dir but then I remembered that bug 1286900 got backed out. :-(

::: testing/web-platform/harness/wptrunner/wptcommandline.py:175
(Diff revision 1)
>                               help="Path to the folder containing browser prefs")
>      gecko_group.add_argument("--disable-e10s", dest="gecko_e10s", action="store_false", default=True,
>                               help="Run tests without electrolysis preferences")
> +    gecko_group.add_argument("--stackfix-dir", dest="stackfix_dir", action="store",
> +                             help="Path to directory containing assertion stack fixing scripts")
> +    gecko_group.add_argument("--utility-path", dest="stackfix_dir", action="store",

Why both of these? Seems like one of them should be sufficient.
Attachment #8800598 - Flags: review?(ted) → review+
Comment on attachment 8800598 [details]
Bug 1238043 - Enable assert stack fixup for wpt,

https://reviewboard.mozilla.org/r/85500/#review84522

> Why both of these? Seems like one of them should be sufficient.

The original thinking was to allow developers to use the same argument they are used to from mochitest et. al., without it being the default since it doesn't do quite the same thing (or make sense in a non-gecko context). But maybe that's just confusing.
Pushed by james@hoppipolla.co.uk:
https://hg.mozilla.org/integration/autoland/rev/f6c6f595991f
Enable assert stack fixup for wpt, r=ted
https://hg.mozilla.org/mozilla-central/rev/f6c6f595991f
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla52
Assignee: nobody → james
`kwargs["stackfix_dir"] = self.get_binary_path("")` doesn't work correctly for me (with the Python version shipped in MozillaBuild 2.2.0). I had to change it to `kwargs["stackfix_dir"] = self.get_binary_path()` to avoid this exception:
  "Exception: Binary expected at c:/hg/mozilla-inbound/obj-x86_64-pc-mingw32\dist\bin\.exe does not exist."

when running |mach web-platform-tests|.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: