Closed Bug 1064424 Opened 10 years ago Closed 10 years ago

Component.utils.now() asserts if called before nsAppStartup::GetStartupInfo()

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla35

People

(Reporter: Irving, Assigned: Irving)

References

Details

Attachments

(1 file)

The proposed patch for bug 1063599 (https://bugzilla.mozilla.org/attachment.cgi?id=8485784) causes a failure when running the XPCShell test with

./mach xpcshell-test --sequential test_TelemetryStopwatch.js

with the top of the stack:

 0:10.53 Assertion failure: !aOther.IsNull() (Cannot compute with aOther null value), at ../../dist/include/mozilla/TimeStamp.h:305
 0:10.54 mozilla::TimeStamp::operator-(mozilla::TimeStamp const&) const+0x000000BB [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x00098CAB]
 0:10.55 nsXPCComponents_Utils::Now(double*)+0x00000036 [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x00D91B66]
 0:10.55 NS_InvokeByIndex+0x0000021B [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x0018119B]
 0:10.56 CallMethodHelper::Invoke()+0x00000058 [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x00E54798]
 0:10.56 CallMethodHelper::Call()+0x00000107 [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x00E44797]
 0:10.56 XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode)+0x000000EB [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x00E2255B]
 0:10.57 XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*)+0x0000039D [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x00E24AFD]
 0:10.57 js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&)+0x000000A5 [/Users/ireid/tbird/obj/mozilla-central-PB/dist/bin/XUL +0x057BA795]


It looks like Components.utils.now() is being called before nsAppStartup::getStartupInfo(), so we haven't recorded a value for StartupTimeline::PROCESS_CREATION yet.

Based on an IRC chat with bz, we'll try calling Timestamp::ProcessCreation() directly instead of using StartupTimeline::PROCESS_CREATION.
Try run along with the patch that caused test failures:

https://tbpl.mozilla.org/?tree=Try&rev=f9e54ceec78f
Attachment #8485884 - Flags: review?(bzbarsky)
Comment on attachment 8485884 [details] [diff] [review]
Use TimeStamp::ProcessCreation to calculate Cu.now()

r=me.  Thanks for finding and patching!
Attachment #8485884 - Flags: review?(bzbarsky) → review+
https://hg.mozilla.org/mozilla-central/rev/e28106ac81b8
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: