Closed Bug 924307 Opened 12 years ago Closed 10 years ago

Intermittent TEST-UNEXPECTED-FAIL | browser_aboutHealthReport.js | uncaught exception - TypeError: reporter is null at abouthealth.js:27 | Test timed out

Categories

(Firefox Health Report Graveyard :: Web: Health Report, defect)

x86
Linux
defect
Not set
normal

Tracking

(firefox27 disabled, firefox28 disabled, firefox-esr24 disabled, b2g-v1.2 disabled)

RESOLVED WORKSFORME
Tracking Status
firefox27 --- disabled
firefox28 --- disabled
firefox-esr24 --- disabled
b2g-v1.2 --- disabled

People

(Reporter: Gijs, Unassigned)

References

Details

(Keywords: intermittent-failure, Whiteboard: [test disabled on Linux])

Attachments

(2 files)

No description provided.
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/general/browser_aboutHealthReport.js | uncaught exception - TypeError: reporter is null at chrome://browser/content/abouthealthreport/abouthealth.js:27 TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/general/browser_aboutHealthReport.js | Test timed out TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/general/browser_aboutHealthReport.js | Found a tab after previous test timed out: about:healthreport TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/general/browser_aboutHome.js | Health Reporter instance available. Followed by more failures: https://tbpl.mozilla.org/php/getParsedLog.php?id=28811384&tree=UX https://tbpl.mozilla.org/?tree=UX&rev=646cc8771af8
This is happening pretty frequently on trunk. Can we please get a looksie? :)
(In reply to Ryan VanderMeulen [:RyanVM UTC-5] from comment #80) > This is happening pretty frequently on trunk. Can we please get a looksie? :) I'm hoping gps will get to this before I do...
Test disabled on Linux. Will push it to Aurora/Beta as a ride-along as well. https://hg.mozilla.org/integration/mozilla-inbound/rev/befb8bacc65e
Whiteboard: [test disabled on Linux][leave open]
The error message comes from abouthealth.js not checking if a variable is null before access. That bug is fixed. However, the underlying issue of unable to fetch reporter remains. Logging has been added to hopefully catch issues. The signature of the failure will change.
Attachment #8335481 - Flags: review?(rnewman)
Assignee: nobody → gps
Status: NEW → ASSIGNED
Attachment #8335481 - Flags: review?(rnewman) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/1db4516a89b1 Test re-enabled. We should have a different failure signature now. But at least it should point us in the right direction for a complete fix.
(In reply to TBPL Robot from comment #173) > RyanVM > https://tbpl.mozilla.org/php/getParsedLog.php?id=30900470&tree=Mozilla- > Central > Rev3 Fedora 12 mozilla-central debug test mochitest-browser-chrome on > 2013-11-21 06:35:36 > revision: dbe66b706ba8 > slave: talos-r3-fed-051 > > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_aboutHealthReport.js | Test timed out > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_aboutHealthReport.js | Found a tab after previous test timed out: > about:healthreport > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_aboutHome.js | Health Reporter instance available. > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_aboutHome.js | Unexpected Exception: TypeError: reporter is null > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_aboutHome.js | Found an unexpected tab at the end of test run: > about:home > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the front notifications > listener - Got onStateChange, expected onLocationChange > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the all notifications > listener - Got onStateChange, expected onLocationChange > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Saw the expected number of notifications > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Saw the expected number of frontnotifications > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the front notifications > listener - Got onLocationChange, expected onSecurityChange > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the all notifications > listener - Got onLocationChange, expected onSecurityChange > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got an expected notification for the front > notifications listener > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the front notifications > listener - Got onStateChange, expected undefined > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | onStateChange notification came from the > correct browser > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got an expected notification for the all > notifications listener > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the all notifications > listener - Got onStateChange, expected undefined > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Saw the expected number of notifications > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Saw the expected number of frontnotifications > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Got a notification for the all notifications > listener - Got onStateChange, expected onLocationChange > TEST-UNEXPECTED-FAIL | > chrome://mochitests/content/browser/browser/base/content/test/general/ > browser_alltabslistener.js | Saw the expected number of notifications > Only displaying first 20 of 100+ failures - > . This includes the patch from comment 166.
Flags: needinfo?(gps)
Whiteboard: [test disabled on Linux][leave open]
00:35:44 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/base/content/test/general/browser_aboutHealthReport.js | Console message: [JavaScript Error: "Exception when obtaining health reporter: Must provide policy to HealthReporter constructor. JS Stack trace: AbstractHealthReporter@HealthReport.jsm:4194 < @HealthReport.jsm:5052 < @DataReportingService.js:265 < @DataReportingService.js:212 < @abouthealth.js:13" {file: "resource://gre/components/DataReportingService.js" line: 216}] This implies this.policy from DataReportingService.js isn't set. It's supposed to get set during profile-after-change on line 127. My guess is that's throwing for some reason. Will need moar logging!
Earlier in the log: 05:52:27 INFO - ************************************************************ 05:52:27 INFO - * Call to xpconnect wrapped JSObject produced this error: * 05:52:27 INFO - [Exception... "'[JavaScript Error: "this.policy is undefined" {file: "resource://gre/components/DataReportingService.js" line: 135}]' when calling method: [nsIObserver::observe]" nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)" location: "JS frame :: resource:///modules/sessionstore/SessionStore.jsm :: ssi_onLoad :: line 739" data: yes] 05:52:27 INFO - ************************************************************ 07:58:34 INFO - ************************************************************ 07:58:34 INFO - * Call to xpconnect wrapped JSObject produced this error: * 07:58:34 INFO - [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIObserverService.removeObserver]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource://gre/modules/identity/Identity.jsm :: shutdown :: line 78" data: no] 07:58:34 INFO - ************************************************************ 07:58:34 INFO - *** WIFI GEO: shutdown called 07:58:34 INFO - --DOCSHELL 0xb216068 == 11 [id = 6] 07:58:34 INFO - JavaScript strict warning: resource://gre/components/DataReportingService.js, line 190: reference to undefined property this.policy 07:58:34 INFO - ************************************************************ 07:58:34 INFO - * Call to xpconnect wrapped JSObject produced this error: * 07:58:34 INFO - [Exception... "'[JavaScript Error: "this.policy is undefined" {file: "resource://gre/components/DataReportingService.js" line: 190}]' when calling method: [nsIObserver::observe]" nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)" location: "JS frame :: chrome://mochikit/content/browser-harness.xul :: testsFinished :: line 258" data: yes]
Flags: needinfo?(gps)
This should help us track down when this.policy isn't set. I suspect we're throwing somewhere in the profile-before-change observer. Why, I have no clue. This could also be the service being disabled from an earlier test. Although tests should clean up after themselves!
Attachment #8336175 - Flags: review?(rnewman)
Comment on attachment 8336175 [details] [diff] [review] More logging and error checking during FHR init Review of attachment 8336175 [details] [diff] [review]: ----------------------------------------------------------------- ::: services/datareporting/DataReportingService.js @@ +229,5 @@ > _loadHealthReporter: function () { > + // This should never happen. It was added to help trace down bug 924307. > + if (!this.policy) { > + throw new Error("this.policy not set."); > + return null; Why do you need to return after throwing?
Attachment #8336175 - Flags: review?(rnewman) → review+
Whiteboard: [leave open]
I wonder if this is a race condition between profile-after-change firing and browser_aboutHealthReport.js running.
Re-disabled, because my heart bleeds for our sheriffs. I think there are enough logs now... https://hg.mozilla.org/integration/fx-team/rev/5cb7f65cdcaa
Assignee: gps → nobody
Status: ASSIGNED → NEW
Depends on: 1173310
FHR is going away per bug 1209088, closing.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
Whiteboard: [test disabled on Linux][leave open] → [test disabled on Linux]
Product: Firefox Health Report → Firefox Health Report Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: