Closed Bug 1367110 Opened 8 years ago Closed 8 years ago

Expose XMLHttpRequest error cases to chrome JS

Categories

(Core :: DOM: Core & HTML, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: chutten, Assigned: chutten)

References

Details

(Whiteboard: [measurement:client])

Attachments

(3 files)

When Telemetry upload fails, we get a generic "error" message in TelemetrySend's XHR error handler[1]. The "error" comes from XMLHttpRequestMainThread's mErrorLoad which is set in four places: OnStartRequest, OnStopRequest, InitiateFetch, OnRedirectVerifyCallback.[2] If we replace the bool with an enum and then expose it to chrome JS we can be more descriptive in reporting errors in cases like TelemetrySend's. [1]: http://reports.telemetry.mozilla.org/post/projects/telemetry_send_failures.kp [2]: http://searchfox.org/mozilla-central/search?q=mErrorLoad&path=
Comment on attachment 8870958 [details] bug 1367110 - Collect Telemetry for different TelemetrySend failures data-r=bsmedberg https://reviewboard.mozilla.org/r/142518/#review146242 data-r=me
Attachment #8870958 - Flags: review?(benjamin) → review+
Comment on attachment 8870958 [details] bug 1367110 - Collect Telemetry for different TelemetrySend failures data-r=bsmedberg https://reviewboard.mozilla.org/r/142518/#review146336 This looks good, thanks! Do you think it would be useful to add Telemetry test coverage (xpcshell) for this probe?
Attachment #8870958 - Flags: review?(alessio.placitelli) → review+
Comment on attachment 8870956 [details] Bug 1367110 - Make XHRMainThread's mErrorLoad more descriptive. https://reviewboard.mozilla.org/r/142514/#review146348
Attachment #8870956 - Flags: review?(amarchesini) → review+
Comment on attachment 8870957 [details] Bug 1367110 - Expose XHRMT's ErrorCode to chrome JS. https://reviewboard.mozilla.org/r/142516/#review146350 ::: dom/webidl/XMLHttpRequest.webidl:159 (Diff revision 1) > > [ChromeOnly, Exposed=Window] > void setOriginAttributes(optional OriginAttributesDictionary originAttributes); > > + [ChromeOnly] > + readonly attribute unsigned short errorCode; Write a comment saying: 1. this is for testing only. 2. this just works on main-thread. 3. when this will be removed. 4. file a bug for removing this in 1 cycle. 5. write the bug ID here.
Attachment #8870957 - Flags: review?(amarchesini) → review+
I don't think we want this in release, am I wrong? Can nightly be enough for the detection of this issue?
Flags: needinfo?(chutten)
Priority: -- → P1
It's for somewhat more than testing. It's for measuring the health of TelemetrySend over (hopefully) the long term. I haven't yet filed the bug for 60 to examine whether to remove or extend the lifetime of the TELEMETRY_SEND_FAILURE_TYPE probe (and revert the errorCode changes), but when I do I can certainly include it in the comment. I expect it will prove to be sufficiently useful to warrant upgrading it to permanent. Having this in release might be a useful addition at a later time, but for now the data will not be recorded there. (Though the attribute will be read) I worry maybe my intentions were misunderstood when I approached you about this issue. I'm hoping to use this to identify the causes of telemetry ping send failures over time: to analyze trends and identify problems as they occur. If this is the wrong way to go about it, then I'll happily rework the patch to use a better long-term mechanism.
Flags: needinfo?(chutten) → needinfo?(amarchesini)
Blocks: 1368540
Pushed by chutten@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9983ac05d7d1 Make XHRMainThread's mErrorLoad more descriptive. r=baku https://hg.mozilla.org/integration/autoland/rev/1b93ec532890 Expose XHRMT's ErrorCode to chrome JS. r=baku https://hg.mozilla.org/integration/autoland/rev/244e7cfea731 Collect Telemetry for different TelemetrySend failures r=bsmedberg,Dexter data-r=bsmedberg
Backed out for eslint failures in TelemetrySend.jsm (must use doublequotes): https://hg.mozilla.org/integration/autoland/rev/1941e33040491f2ba9c435cf10747e9200901083 https://hg.mozilla.org/integration/autoland/rev/e30c63dcb366d2e8f89751d3962a9cbe50e58a2e https://hg.mozilla.org/integration/autoland/rev/83f02ddde71f96da055af41fd10c945be89dde67 Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=244e7cfea7317c67c322a2b4fba6c2b2e64feb34&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=103473826&repo=autoland TEST-UNEXPECTED-ERROR | /home/worker/checkouts/gecko/toolkit/components/telemetry/TelemetrySend.jsm:98:3 | Strings must use doublequote. (quotes) TEST-UNEXPECTED-ERROR | /home/worker/checkouts/gecko/toolkit/components/telemetry/TelemetrySend.jsm:99:3 | Strings must use doublequote. (quotes) TEST-UNEXPECTED-ERROR | /home/worker/checkouts/gecko/toolkit/components/telemetry/TelemetrySend.jsm:100:3 | Strings must use doublequote. (quotes) TEST-UNEXPECTED-ERROR | /home/worker/checkouts/gecko/toolkit/components/telemetry/TelemetrySend.jsm:101:3 | Strings must use doublequote. (quotes) TEST-UNEXPECTED-ERROR | /home/worker/checkouts/gecko/toolkit/components/telemetry/TelemetrySend.jsm:102:3 | Strings must use doublequote. (quotes) TEST-UNEXPECTED-ERROR | /home/worker/checkouts/gecko/toolkit/components/telemetry/TelemetrySend.jsm:1121:23 | Strings must use doublequote. (quotes)
Flags: needinfo?(chutten)
Pushed by chutten@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d632ed767b41 Make XHRMainThread's mErrorLoad more descriptive. r=baku https://hg.mozilla.org/integration/autoland/rev/35d360dce251 Expose XHRMT's ErrorCode to chrome JS. r=baku https://hg.mozilla.org/integration/autoland/rev/91a308b8cbbe Collect Telemetry for different TelemetrySend failures r=bsmedberg,Dexter data-r=bsmedberg
Flags: needinfo?(chutten)
Blocks: 1371312
Depends on: 1432489
I will assume that all is well. We have now used these error codes to diagnose and fix issues in Telemetry.
Flags: needinfo?(amarchesini)
Depends on: 1501303
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: