Closed Bug 1119327 Opened 5 years ago Closed 5 years ago

AsyncShutdown completion condition error from TelemetryFile.savePingToFile


(Toolkit :: Telemetry, defect)

Not set



Tracking Status
firefox37 --- fixed


(Reporter: gfritzsche, Assigned: bwinton)



(Keywords: regression)


(1 file)

Checked on Nightly 2015-01-08.
* run with fresh profile
* navigate to about:telemetry
* quit Firefox

... this produces the error below.

> gfritzsche$ /Applications/ --no-remote -profile `mktemp -d -t testProfile`
> WARNING: A completion condition encountered an error while we were spinning the event loop. Condition: Telemetry: shutting down Phase: profile-before-change2 State: (none)
> WARNING: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.userPass]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: resource://gre/modules/TelemetryFile.jsm :: this.TelemetryFile.savePingToFile/< :: line 85"  data: no]
> WARNING: this.TelemetryFile.savePingToFile/<@resource://gre/modules/TelemetryFile.jsm:85:25
> TaskImpl_run@resource://gre/modules/Task.jsm:314:39
> TaskImpl@resource://gre/modules/Task.jsm:275:2
> createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:13
> Task_spawn@resource://gre/modules/Task.jsm:164:11
> this.TelemetryFile.savePingToFile@resource://gre/modules/TelemetryFile.jsm:83:0
> this.TelemetryFile.savePing/<@resource://gre/modules/TelemetryFile.jsm:105:12
> TaskImpl_run@resource://gre/modules/Task.jsm:314:39
> Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:22
> this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:749:6
> this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:691:36
> Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:366:8
This is not happening on Nightly 2014-12-28.
Jim, looks like this is a regression from bug 1109931?
Flags: needinfo?(nchen)
Actually looks like a regression from bug 1102937.

ping.payload.simpleMeasurements.UITelemetry.toolbars.currentSearchEngine should be a string (I think) but is instead an nsISearchEngine object, and JSON.stringify encounters an error when it tries to read the value of currentSearchEngine.iconURI.userPass.
Blocks: 1102937
Flags: needinfo?(nchen)
All we're interested in there is a unique identifier, so I'm going to add a ".name" to browser/modules/BrowserUITelemetry.jsm line 559, and see if that fixes the error.  Jim, can I ask you for the review once I verify it fixes the error?
Assignee: nobody → bwinton
Comment on attachment 8546076 [details] [diff] [review]
Use the .name instead of the entire search engine object.

Review of attachment 8546076 [details] [diff] [review]:

LGTM! You should check that about:telemetry works too because I think this also broke about:telemetry.
Attachment #8546076 - Flags: review?(nchen) → review+
(I was actually checking about:telemetry for other stuff, so, yeah, this fixes that.  :)
Keywords: checkin-needed
Duplicate of this bug: 1119597
Hi, can we get a try run for this changes ? Thanks!
Flags: needinfo?(bwinton)
Keywords: checkin-needed
(It's mostly green so far, with no failures, but a bunch of stuff still running…)
Flags: needinfo?(bwinton)
Duplicate of this bug: 1119848
Keywords: checkin-needed
Attachment #8546076 - Flags: approval-mozilla-aurora+
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla37
Blocks: 1121067
You need to log in before you can comment on or make changes to this bug.