Intermittent dom/tests/mochitest/fetch/test_request.html | ServiceWorker: worker failed to import test_request.js; error: Failed to load worker script at test_request.js (nsresult = 0x8053000b)

RESOLVED FIXED in Firefox 63

Status

()

P2
normal
RESOLVED FIXED
8 months ago
7 months ago

People

(Reporter: intermittent-bug-filer, Assigned: ytausky)

Tracking

({intermittent-failure})

unspecified
mozilla63
intermittent-failure
Points:
---

Firefox Tracking Flags

(firefox63 fixed)

Details

(Whiteboard: [stockwell unknown])

Attachments

(1 attachment)

(Reporter)

Description

8 months ago
treeherder
Filed by: ncsoregi [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=191804215&repo=autoland

https://queue.taskcluster.net/v1/task/W7_3ONw0Sk-ghhLe8HZQZg/runs/0/artifacts/public/logs/live_backing.log

[task 2018-08-03T07:31:05.850Z] 07:31:05     INFO - TEST-PASS | dom/tests/mochitest/fetch/test_request.html | NestedWorker: 
[task 2018-08-03T07:31:05.851Z] 07:31:05     INFO - 
[task 2018-08-03T07:31:05.852Z] 07:31:05     INFO - 
[task 2018-08-03T07:31:05.853Z] 07:31:05     INFO - 
[task 2018-08-03T07:31:05.853Z] 07:31:05     INFO -  === 
[task 2018-08-03T07:31:05.854Z] 07:31:05     INFO - 
[task 2018-08-03T07:31:05.855Z] 07:31:05     INFO - 
[task 2018-08-03T07:31:05.856Z] 07:31:05     INFO - 
[task 2018-08-03T07:31:05.857Z] 07:31:05     INFO - : File contents should match. 
[task 2018-08-03T07:31:05.859Z] 07:31:05     INFO - TEST-PASS | dom/tests/mochitest/fetch/test_request.html | NestedWorker: true === true: Passing a Request to another Request should set the former as used 
[task 2018-08-03T07:31:05.860Z] 07:31:05     INFO - TEST-PASS | dom/tests/mochitest/fetch/test_request.html | NestedWorker: true: Invalid mimetype should fail. 
[task 2018-08-03T07:31:05.860Z] 07:31:05     INFO - TEST-PASS | dom/tests/mochitest/fetch/test_request.html | NestedWorker: true: Used Request cannot be passed to new Request 
[task 2018-08-03T07:31:05.861Z] 07:31:05     INFO - Buffered messages finished
[task 2018-08-03T07:31:05.862Z] 07:31:05     INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/fetch/test_request.html | ServiceWorker: worker failed to import test_request.js; error: Failed to load worker script at test_request.js (nsresult = 0x8053000b) 
[task 2018-08-03T07:31:05.863Z] 07:31:05     INFO -     onMessage@dom/tests/mochitest/fetch/fetch_test_framework.js:93:13
[task 2018-08-03T07:31:05.864Z] 07:31:05     INFO -     EventListener.handleEvent*setupSW@dom/tests/mochitest/fetch/fetch_test_framework.js:82:9
[task 2018-08-03T07:31:05.866Z] 07:31:05     INFO - GECKO(1724) | ###!!! [Parent][DispatchAsyncMessage] Error: PClientSourceOp::Msg___delete__ Route error: message sent to unknown actor ID
[task 2018-08-03T07:31:05.867Z] 07:31:05     INFO - GECKO(1724) | MEMORY STAT | vsize 20973587MB | residentFast 894MB
[task 2018-08-03T07:31:05.868Z] 07:31:05     INFO - TEST-OK | dom/tests/mochitest/fetch/test_request.html | took 1398ms
Comment hidden (Intermittent Failures Robot)
Comment hidden (Intermittent Failures Robot)
Hmm, if I added another test for bug 1482017, it causes this bug again.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=03f15cc6573cbfac2d9642476e110176b25e7710

I'll land them with disabling the new tests only debug builds on Android, but this is really annoying to me, as module owner of editor. While I was writing the patches, I didn't reproduce this orange. So, this is a new regression, we should fix this.
It seems that adding any new mochitest-plain test into editor/libeditor/tests causes this permanent failure of the test:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b692195dff46655bcaadef26abbad4795d8ca5fd

So, I don't think that we should keep enabling this test for debug build on Android since editor developers cannot add tests only for this test...

I'd like to ask somebody who wrote/hacked the test. Do you have any idea for this orange? Do you agree with disabling this test?
Flags: needinfo?(nsm.nikhil)
Flags: needinfo?(ehsan)
Flags: needinfo?(ben)
I realized that, oddly, when the mochitest-36 is either orange or green, no editor tests are run. Why adding new tests into editor causes the orange???
https://taskcluster-artifacts.net/FgVE2GLOQ8iuRbOZRyLKkQ/0/public/logs/live_backing.log
https://taskcluster-artifacts.net/JXFEyqZLS2K7M1_y0yhoHw/0/public/logs/live_backing.log

Comment 6

7 months ago
I don't think this failure has anything to do with the test you've added, since as you note it is not running in the test job, and there is no evidence to suggest that either your test or your code change are the cause here.  To the contrary, if you look at the logcat, the error that causes the test failure is actually clearly logged:

08-15 00:40:35.816   809   838 I Gecko   : [809, Main Thread] WARNING: '!window', file /builds/worker/workspace/build/src/dom/cache/CacheStorage.cpp, line 596
08-15 00:40:35.886   809   838 I Gecko   : [809, Main Thread] WARNING: '!window', file /builds/worker/workspace/build/src/dom/cache/CacheStorage.cpp, line 596
08-15 00:40:37.017   809   838 I Gecko   : [809, Main Thread] WARNING: '!window', file /builds/worker/workspace/build/src/dom/cache/CacheStorage.cpp, line 596
08-15 00:40:37.177   809   838 I Gecko   : [809, Main Thread] WARNING: '!window', file /builds/worker/workspace/build/src/dom/cache/CacheStorage.cpp, line 596
08-15 00:40:37.207   809   838 I Gecko   : [809, Main Thread] WARNING: 'mIsWorkerScript || (mState != ServiceWorkerState::Parsed && mState != ServiceWorkerState::Installing)', file /builds/worker/workspace/build/src/dom/workers/ScriptLoader.cpp, line 1765
08-15 00:40:37.307   809   838 E GeckoConsole: [JavaScript Error: "Service worker event waitUntil() was passed a promise that rejected with 'TypeError: completeInstall is not a function'."]
08-15 00:40:37.477   809   838 I GeckoDump: ⰲ겿{"action":"test_status","time":1534318837465,"thread":null,"pid":null,"source":"mochitest","test":"/tests/dom/tests/mochitest/fetch/test_request.html","subtest":"ServiceWorker: worker failed to import test_request.js; error: Failed to load worker script at test_request.js (nsresult = 0x8053000b)","status":"FAIL","expected":"PASS","stack":"    onMessage@dom/tests/mochitest/fetch/fetch_test_framework.js:93:13\n","js_source":"TestRunner.js"}ⰲ겿

Clearing the needinfo for people who don't work at the company any longer and myself who doesn't work on service workers any more.  Needinfoing Marion who managers the workers and storage team now to help find an owner.
Flags: needinfo?(nsm.nikhil)
Flags: needinfo?(mdaly)
Flags: needinfo?(ehsan)
Flags: needinfo?(ben)
asuth: this may be a good project for Yaron
Flags: needinfo?(mdaly) → needinfo?(bugmail)

Updated

7 months ago
Component: DOM → DOM: Service Workers
Priority: -- → P3
Assignee: nobody → ytausky
Status: NEW → ASSIGNED
Flags: needinfo?(bugmail)
(Assignee)

Updated

7 months ago
Priority: P3 → P2

Comment 9

7 months ago
(In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #8)
> I got the changeset which becomes adding a new test into
> editor/libeditor/tests causes the test orange.
> That is: https://hg.mozilla.org/try/rev/8b97d3b93472
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=88d8403ffb9a90ca63c73465486ccd2c0843e025
> 
> Before this changeset, adding new test does not cause the orange:
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=7f96655f130827a18b3b7479c67906b788d371d7

Hmm, so basically after bug 1070763?  Interesting!
Comment hidden (Intermittent Failures Robot)
(Assignee)

Comment 11

7 months ago
After analyzing test_request.html it became clear that it relied on two false
assumptions:
1. It assumed that a service worker is notified that it's being installed before
   any client can interact with it.
2. It assumed that a service worker will always be installed upon registration,
   if it was unregistered before.
The first assumption is not backed by the spec; it seems that the opposite behavior
is the correct one (https://github.com/w3c/ServiceWorker/issues/1347). The second
assumption ignores the possibility of resurrection, where a service worker is re-
registered before getting uninstalled.

This commit addresses both problems by not relying on the installation phase,
instead passing the script URL as a search parameter and loading it at service
worker script evaluation time. It then runs the test function in response to a
message from the client.
(Assignee)

Updated

7 months ago
Keywords: leave-open
Comment on attachment 9002746 [details]
Bug 1480702: Rewrite test to avoid relying on unspecified/erroneous behavior

Andrew Sutherland [:asuth] has approved the revision.
Attachment #9002746 - Flags: review+

Comment 13

7 months ago
Pushed by bugmail@asutherland.org:
https://hg.mozilla.org/integration/autoland/rev/ce2f6b168f04
Rewrite test to avoid relying on unspecified/erroneous behavior r=asuth
Comment hidden (Intermittent Failures Robot)
(Assignee)

Comment 17

7 months ago
@masayuki, I'm not sure I understand the link you posted. The failures there seem to be unrelated to this bug. Is there something connecting them to it?
It was automatically posted by bzpost since the summary of my changeset includes the number of this bug. Sorry for the confusion.
(Assignee)

Comment 19

7 months ago
No problem, thanks for clarifying.
BTW, looks like that this bug has been fixed completely. Why is this bug still open?
Flags: needinfo?(ytausky)

Comment 21

7 months ago
The leave-open keyword.  :-)
(Assignee)

Comment 22

7 months ago
I just wanted to wait a bit to make sure it really stops failing. Since it's been quite for twice the the time between failures before the patch, I guess it's safe to mark it as resolved.
Status: ASSIGNED → RESOLVED
Last Resolved: 7 months ago
Flags: needinfo?(ytausky)
Keywords: leave-open
Resolution: --- → FIXED
status-firefox63: --- → fixed
Target Milestone: --- → mozilla63
You need to log in before you can comment on or make changes to this bug.