Closed Bug 1290288 Opened 3 years ago Closed 3 years ago

1,900 instances of "A control runnable was posted to a worker that is already shutting down!" emitted from dom/workers/WorkerPrivate.cpp during linux64 debug testing

Categories

(Core :: DOM: Workers, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla51
Tracking Status
firefox51 --- fixed

People

(Reporter: erahm, Assigned: erahm)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

> 1888 WARNING: A control runnable was posted to a worker that is already shutting down!: file dom/workers/WorkerPrivate.cpp, line 2507

This warning [1] shows up in the following test suites:

>    111 - desktop-test-linux64/debug-mochitest-e10s-7 7
>     73 - desktop-test-linux64/debug-mochitest-7 7
>     68 - desktop-test-linux64/debug-web-platform-tests-e10s-5 5
>     66 - desktop-test-linux64/debug-web-platform-tests-5 5
>     65 - desktop-test-linux64/debug-mochitest-e10s-4 4
>     57 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-7 bc7
>     55 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-6 bc6
>     46 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-2 bc2
>     45 - desktop-test-linux64/debug-web-platform-tests-e10s-9 9
>     44 - desktop-test-linux64/debug-mochitest-jetpack JP
>     44 - desktop-test-linux64/debug-web-platform-tests-reftests Wr
>     41 - desktop-test-linux64/debug-mochitest-browser-chrome-4 bc4
>     39 - desktop-test-linux64/debug-web-platform-tests-reftests-e10s Wr
>     37 - desktop-test-linux64/debug-mochitest-6 6
>     36 - desktop-test-linux64/debug-mochitest-browser-chrome-7 bc7
>     36 - desktop-test-linux64/debug-web-platform-tests-9 9
>     35 - desktop-test-linux64/debug-mochitest-e10s-3 3
>     34 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-3 bc3
>     32 - desktop-test-linux64/debug-mochitest-e10s-6 6
>     31 - desktop-test-linux64/debug-mochitest-devtools-chrome-6 dt6
>     28 - desktop-test-linux64/debug-mochitest-devtools-chrome-4 dt4
>     26 - desktop-test-linux64/debug-mochitest-e10s-9 9
>     26 - desktop-test-linux64/debug-mochitest-browser-chrome-6 bc6
>     24 - desktop-test-linux64/debug-mochitest-e10s-5 5
>     24 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-1 bc1
>     22 - desktop-test-linux64/debug-mochitest-5 5
>     22 - desktop-test-linux64/debug-mochitest-3 3
>     21 - desktop-test-linux64/debug-mochitest-e10s-2 2
>     19 - desktop-test-linux64/debug-mochitest-devtools-chrome-1 dt1
>     18 - desktop-test-linux64/debug-mochitest-browser-chrome-1 bc1
>     18 - desktop-test-linux64/debug-mochitest-a11y a11y
>     18 - desktop-test-linux64/debug-mochitest-media-e10s mda
>     18 - desktop-test-linux64/debug-mochitest-devtools-chrome-10 dt10
>     18 - desktop-test-linux64/debug-mochitest-2 2
>     16 - desktop-test-linux64/debug-mochitest-browser-chrome-2 bc2
>     15 - desktop-test-linux64/debug-mochitest-9 9
>     14 - desktop-test-linux64/debug-firefox-ui-functional-local-e10s en-US
>     14 - desktop-test-linux64/debug-mochitest-browser-chrome-3 bc3
>     14 - desktop-test-linux64/debug-mochitest-devtools-chrome-3 dt3
>     14 - desktop-test-linux64/debug-mochitest-chrome-1 c1
>     14 - desktop-test-linux64/debug-mochitest-browser-chrome-5 bc5
>     14 - desktop-test-linux64/debug-web-platform-tests-7 7
>     12 - desktop-test-linux64/debug-mochitest-chrome-3 c3
>     12 - desktop-test-linux64/debug-mochitest-media mda
>     12 - desktop-test-linux64/debug-mochitest-devtools-chrome-9 dt9
>     11 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-5 bc5
>     11 - desktop-test-linux64/debug-mochitest-devtools-chrome-5 dt5
>     10 - desktop-test-linux64/debug-web-platform-tests-e10s-7 7
>     10 - desktop-test-linux64/debug-mochitest-e10s-8 8
>     10 - desktop-test-linux64/debug-mochitest-1 1
>     10 - desktop-test-linux64/debug-mochitest-e10s-1 1
>     10 - desktop-test-linux64/debug-mochitest-devtools-chrome-7 dt7
>     10 - desktop-test-linux64/debug-mochitest-8 8
>     10 - desktop-test-linux64/debug-mochitest-devtools-chrome-8 dt8
>      9 - desktop-test-linux64/debug-mochitest-chrome-2 c2
>      9 - desktop-test-linux64/debug-mochitest-e10s-10 10
>      8 - desktop-test-linux64/debug-crashtest-e10s C
>      8 - desktop-test-linux64/debug-mochitest-devtools-chrome-2 dt2
>      8 - desktop-test-linux64/debug-firefox-ui-functional-local en-US
>      8 - desktop-test-linux64/debug-mochitest-10 10
>      8 - desktop-test-linux64/debug-crashtest C
>      7 - desktop-test-linux64/debug-mochitest-4 4
>      7 - desktop-test-linux64/debug-mochitest-browser-chrome-e10s-4 bc4
>      6 - desktop-test-linux64/debug-reftest-no-accel-8 Ru8
>      6 - desktop-test-linux64/debug-web-platform-tests-2 2
>      6 - desktop-test-linux64/debug-reftest-no-accel-2 Ru2
>      6 - desktop-test-linux64/debug-reftest-no-accel-e10s-3 Ru3
>      6 - desktop-test-linux64/debug-mochitest-webgl-e10s gl
>      6 - desktop-test-linux64/debug-reftest-e10s-8 R8
>      6 - desktop-test-linux64/debug-jsreftest-2 J2
>      6 - desktop-test-linux64/debug-reftest-e10s-1 R1
>      6 - desktop-test-linux64/debug-reftest-e10s-6 R6
>      6 - desktop-test-linux64/debug-reftest-no-accel-e10s-5 Ru5
>      6 - desktop-test-linux64/debug-jsreftest-e10s-2 J2
>      6 - desktop-test-linux64/debug-reftest-2 R2
>      6 - desktop-test-linux64/debug-reftest-e10s-4 R4
>      6 - desktop-test-linux64/debug-reftest-no-accel-3 Ru3
>      6 - desktop-test-linux64/debug-reftest-no-accel-e10s-4 Ru4
>      6 - desktop-test-linux64/debug-reftest-e10s-3 R3
>      6 - desktop-test-linux64/debug-reftest-no-accel-e10s-1 Ru1
>      6 - desktop-test-linux64/debug-web-platform-tests-4 4
>      6 - desktop-test-linux64/debug-reftest-1 R1
>      6 - desktop-test-linux64/debug-jsreftest-e10s-1 J1
>      6 - desktop-test-linux64/debug-web-platform-tests-e10s-4 4
>      6 - desktop-test-linux64/debug-reftest-no-accel-e10s-6 Ru6
>      6 - desktop-test-linux64/debug-web-platform-tests-8 8
>      6 - desktop-test-linux64/debug-mochitest-webgl gl
>      6 - desktop-test-linux64/debug-reftest-no-accel-4 Ru4
>      6 - desktop-test-linux64/debug-jsreftest-1 J1
>      6 - desktop-test-linux64/debug-web-platform-tests-e10s-3 3
>      5 - desktop-test-linux64/debug-web-platform-tests-12 12
>      4 - desktop-test-linux64/debug-reftest-7 R7
>      4 - desktop-test-linux64/debug-reftest-no-accel-e10s-8 Ru8
>      4 - desktop-test-linux64/debug-web-platform-tests-6 6
>      4 - desktop-test-linux64/debug-reftest-5 R5
>      4 - desktop-test-linux64/debug-web-platform-tests-e10s-2 2
>      4 - desktop-test-linux64/debug-reftest-no-accel-6 Ru6
>      4 - desktop-test-linux64/debug-reftest-e10s-5 R5
>      4 - desktop-test-linux64/debug-web-platform-tests-1 1
>      4 - desktop-test-linux64/debug-reftest-e10s-7 R7
>      4 - desktop-test-linux64/debug-firefox-ui-functional-remote-e10s en-US
>      4 - desktop-test-linux64/debug-reftest-6 R6
>      4 - desktop-test-linux64/debug-web-platform-tests-e10s-1 1
>      4 - desktop-test-linux64/debug-reftest-no-accel-e10s-7 Ru7
>      4 - desktop-test-linux64/debug-reftest-no-accel-e10s-2 Ru2
>      4 - desktop-test-linux64/debug-reftest-no-accel-7 Ru7
>      4 - desktop-test-linux64/debug-reftest-no-accel-5 Ru5
>      4 - desktop-test-linux64/debug-reftest-8 R8
>      4 - desktop-test-linux64/debug-firefox-ui-functional-remote en-US
>      4 - desktop-test-linux64/debug-web-platform-tests-11 11
>      4 - desktop-test-linux64/debug-reftest-e10s-2 R2
>      4 - desktop-test-linux64/debug-web-platform-tests-3 3
>      4 - desktop-test-linux64/debug-web-platform-tests-e10s-8 8
>      4 - desktop-test-linux64/debug-web-platform-tests-e10s-11 11
>      4 - desktop-test-linux64/debug-reftest-4 R4
>      4 - desktop-test-linux64/debug-reftest-3 R3
>      4 - desktop-test-linux64/debug-reftest-no-accel-1 Ru1
>      3 - desktop-test-linux64/debug-web-platform-tests-e10s-12 12
>      2 - desktop-test-linux64/debug-web-platform-tests-e10s-6 6

It shows up in 877 tests. A few of the most prevalent:

>     22 -        jetpack-package/addon-sdk/source/test/test-simple-prefs.js.testUnloadOfDynamicPrefGeneration
>     18 -        devtools/client/projecteditor/test/browser_projecteditor_tree_selection_02.js
>     16 - [e10s] dom/workers/test/test_sharedWorker_ports.html
>     16 -        dom/workers/test/test_rvals.html
>     15 - [e10s] /html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html
>     13 -        /html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html
>     13 - [e10s] /html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html
>     13 -        /html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html
>     13 -        /html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html
>     13 - [e10s] /html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html

[1] https://hg.mozilla.org/mozilla-central/annotate/9ec789c0ee5b/dom/workers/WorkerPrivate.cpp#l2507
Ben, bisection points to this jumping by about 1600 when bug 1279389 landed.
Blocks: 1279389
Flags: needinfo?(bkelly)
I'm sorry, but that bug stops a worker.  Its completely legitimate for a worker to be stopped and have things cleaned up via the WorkerHolder::Notify() and then have cleanup control runnables not run.  I'm not spending time to investigate this without more issues beyond some warnings in the log.  Is there any evidence there is an actual functional problem?

If you want to argue this warning should be removed completely from dom/worker, then that is a separate issue.  I personally think we should remove it, but I'm not a module owner or peer there.
Flags: needinfo?(bkelly)
(In reply to Ben Kelly [:bkelly] from comment #2)
> I'm sorry, but that bug stops a worker.  Its completely legitimate for a
> worker to be stopped and have things cleaned up via the
> WorkerHolder::Notify() and then have cleanup control runnables not run.  I'm
> not spending time to investigate this without more issues beyond some
> warnings in the log.  Is there any evidence there is an actual functional
> problem?
> 
> If you want to argue this warning should be removed completely from
> dom/worker, then that is a separate issue.  I personally think we should
> remove it, but I'm not a module owner or peer there.

That's basically all these bugs are, either it's an issue and we should fix it or we should remove the warning. Given your input I'd lean towards removing the warning.
Blake would you mind taking a look at this or redirecting to a more appropriate reviewer? Per comment 2 there seem to be reasonable use cases of posting a control runnable to a worker that is shutting down. I propose just removing the warning.
Attachment #8776731 - Flags: review?(mrbkap)
Assignee: nobody → erahm
Status: NEW → ASSIGNED
Comment on attachment 8776731 [details] [diff] [review]
Remove control runnable warning

khuey's still around to answer questions like these!
Attachment #8776731 - Flags: review?(mrbkap) → review?(khuey)
https://hg.mozilla.org/mozilla-central/rev/9cc951558a17
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
You need to log in before you can comment on or make changes to this bug.