OSX perma fail on Thunderbird - toolkit/components/telemetry/tests/unit/test_TelemetryController.js | xpcshell return code: 0
Categories
(Thunderbird :: General, defect, P5)
Tracking
(Not tracked)
People
(Reporter: intermittent-bug-filer, Unassigned)
Details
(Keywords: intermittent-failure)
Filed by: mkmelin+mozilla [at] iki.fi
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=286586188&repo=comm-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/AFQzIstyTtCPHsFMZ9tpJQ/runs/0/artifacts/public/logs/live_backing.log
Comment hidden (Intermittent Failures Robot) |
Updated•4 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment 5•4 years ago
|
||
Picking through the raw logs, I can see it's failing at this point:
https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/tests/unit/test_TelemetryController.js#286
I think it's picking up a ping left over from the block of code directly above it, where it simulates a failed connection.
The TelemetryController.testReset()
call a few lines earlier looks like it should just clobber any leftover pings and set us up in a pristine test state again... but still we receive a leftover deletion-request
ping rather than the test-ping-type
ping we were expecting.
I'm kind of stumped - I can't figure out why this is happening only on OSX, and why it doesn't seem to be an issue in m-c...
I think the thing to do is to start peppering the codebase with trace statements to pinpoint exactly what's happening (and maybe compare to Linux/windows). If all else fails I can try this, but without a mac I'd be resorting to submitting runs to the try server, which is a pretty excruciating way to debug code...
Comment hidden (Intermittent Failures Robot) |
Comment 7•4 years ago
|
||
Sample log: https://firefoxci.taskcluster-artifacts.net/H-g7IBzIRiexEXmuUWTGrQ/0/public/logs/live_backing.log
task 2020-02-18T12:04:26.134Z] 12:04:26 WARNING - TEST-UNEXPECTED-FAIL | toolkit/components/telemetry/tests/unit/test_TelemetryController.js | test_disableDataUpload - [test_disableDataUpload : 83] The ping must have the correct type. - "deletion-request" == "test-ping-type"
Up until here it's ok: https://searchfox.org/mozilla-central/rev/0439db3a39faddb90197a87cc184c57dcbf0a770/toolkit/components/telemetry/tests/unit/test_TelemetryController.js#263
... but the deletion-ping left behind there is then received here
https://searchfox.org/mozilla-central/rev/0439db3a39faddb90197a87cc184c57dcbf0a770/toolkit/components/telemetry/tests/unit/test_TelemetryController.js#286
Should the Preferences.set be called before the PingServer.start() is called?
Where is the deletion-request ping supposed to go. Is it supposed to be cleared by the PingServer.start()?
Chris, any idea why this test isn't working on Thunderbird mac?
Comment 8•4 years ago
|
||
Both pings should be sent, but the order appears to be backwards. As part of the send task we'll first send whatever pings have been submitted (in this case TEST_PING_TYPE), then any on the pending pings list (in this case "deletion-request"). This behaviour can be found here
I'm not sure what would make this platform-dependent and product-dependent. Let's look at the logs:
12:04:26.082 - test-ping-type is saved to disk because it couldn't be sent
12:04:26.085 - removes all pending pings (should include test-ping-type)
12:04:26.090 - deletion-request ping is saved to disk because it couldn't be sent
12:04:26.106 - feletion-request pending ping loaded after restart
12:04:26.126 - upload is re-enabled
12:04:26.126 - test-ping-type submitted
12:04:26.128 - pings to send: 1 current and 1 pending
12:04:26.130 - test-ping-type can't reach the PingServer <---- WAIT, What?
12:04:26.132 - deletion-request ping is successfully sent, failing the test
Well there's the problem: test-ping-type failed to be received, so it doesn't get you past line 286. So when the later deletion-request ping is received it fails the checks.
I'm not sure why it wasn't received. Maybe PingServer isn't started? Maybe the port is still closed? Do you have other theories?
Comment 9•4 years ago
|
||
Thanks! Not too many theories atm.
Khushil, please try adding Assert.ok(PingServer.started); here:
https://searchfox.org/mozilla-central/rev/0439db3a39faddb90197a87cc184c57dcbf0a770/toolkit/components/telemetry/tests/unit/test_TelemetryController.js#280
Comment 10•4 years ago
|
||
It is passing i.e PingServer.started is true when we reach there.
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 35•4 years ago
|
||
This disappeared.
Comment 36•4 years ago
|
||
It's showing up on c-esr78 on every release now: https://treeherder.mozilla.org/jobs?repo=comm-esr78&selectedTaskRun=EgmiY4CHQE2Z498hz3n4bw.0
Apparently something needs uplifting?
Comment 37•4 years ago
|
||
Seems OSX only, like it use to be.
We couldn't fix it earlier, so unlikely to be able to fix it now. But it should be just a test failure, so not too bad either. I guess we could disable that test for esr 78 if you don't want to see the yellow. r=mkmelin for that
Description
•