Closed Bug 1473786 (macOS-LTO) Opened 5 years ago Closed 5 years ago

Enable LTO on macOS builds

Categories

(Firefox Build System :: General, defect)

Unspecified
macOS
defect
Not set
normal

Tracking

(relnote-firefox 64+, firefox64 fixed)

RESOLVED FIXED
mozilla64
Tracking Status
relnote-firefox --- 64+
firefox64 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(2 files)

      No description provided.
Comment on attachment 8990175 [details]
Bug 1473786 - Enable LTO on macOS builds.

https://reviewboard.mozilla.org/r/255198/#review262176

Sure, why not. Any idea what this does to perf/codesize?
Attachment #8990175 - Flags: review+
Attachment #8990175 - Flags: review?(core-build-config-reviews)
5MB larger installer size, for up to 10% improvement in performance, except for one specific regression on  rasterflood_gradient (discussed with jrmuizel already)
This appears to make builds in CI ~30 minutes slower. From ~12 minutes to ~40 minutes. That's pretty substantial. It's big enough that we should consider only using LTO on some builds.

But we don't have Mac machine capacity to run tests on builds with and without LTO for every push...

Anyway there's a handful of interesting bits in the logs.

[task 2018-07-06T03:24:15.428Z] 03:24:15     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/js/src/jsapi-tests'
[task 2018-07-06T03:24:15.428Z] 03:24:15     INFO -  /builds/worker/workspace/build/src/obj-firefox/_virtualenvs/init/bin/python -m mozbuild.action.check_binary --target ../../../dist/bin/jsapi-tests
[task 2018-07-06T03:24:15.428Z] 03:24:15     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/js/src/jsapi-tests'
[task 2018-07-06T03:24:15.448Z] 03:24:15     INFO -  make[4]: Nothing to be done for 'syms'.
[task 2018-07-06T03:30:37.788Z] 03:30:37     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/library'

Looks like check_binary.py is taking ~6 minutes to run??

[task 2018-07-06T03:31:04.619Z] 03:31:04     INFO -  while processing /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-apple-darwin/release/libgkrust.a(gkrust-4c70ef1af5b0b889.gkrust0.rcgu.o):
[task 2018-07-06T03:31:04.619Z] 03:31:04     INFO -  warning: no mapping for range.

There's hundreds (maybe thousands) of these.

[task 2018-07-06T03:40:53.793Z] 03:40:53     INFO -  warning: cannot open debug object "/tmp/thinlto.o/193.o": No such file or directory

And a few thousand of these.

[task 2018-07-06T03:40:54.092Z] 03:40:54     INFO -  while processing /builds/worker/workspace/build/src/obj-firefox/toolkit/library/gtest/../x86_64-apple-darwin/release/libgkrust_gtest.a(gkrust_gtest-6e8909b008f5744d.gkrust_gtest0.rcgu.o):
[task 2018-07-06T03:40:54.092Z] 03:40:54     INFO -  warning: could not find referenced DIE
[task 2018-07-06T03:40:54.093Z] 03:40:54     INFO -  while processing /builds/worker/workspace/build/src/obj-firefox/toolkit/library/gtest/../x86_64-apple-darwin/release/libgkrust_gtest.a(gkrust_gtest-6e8909b008f5744d.gkrust_gtest0.rcgu.o):
[task 2018-07-06T03:40:54.093Z] 03:40:54     INFO -  warning: could not find referenced DIE

And hundreds to thousands of these.
Those sound like they might be from dsymutil. They may or may not be an actual problem, but we should sanity check that the Breakpad symbols aren't radically different in an LTO build.
(In reply to Gregory Szorc [:gps] from comment #4)
> This appears to make builds in CI ~30 minutes slower. From ~12 minutes to
> ~40 minutes. That's pretty substantial. It's big enough that we should
> consider only using LTO on some builds.
> 
> But we don't have Mac machine capacity to run tests on builds with and
> without LTO for every push...
> 
> Anyway there's a handful of interesting bits in the logs.
> 
> [task 2018-07-06T03:24:15.428Z] 03:24:15     INFO -  make[4]: Entering
> directory '/builds/worker/workspace/build/src/obj-firefox/js/src/jsapi-tests'
> [task 2018-07-06T03:24:15.428Z] 03:24:15     INFO - 
> /builds/worker/workspace/build/src/obj-firefox/_virtualenvs/init/bin/python
> -m mozbuild.action.check_binary --target ../../../dist/bin/jsapi-tests
> [task 2018-07-06T03:24:15.428Z] 03:24:15     INFO -  make[4]: Leaving
> directory '/builds/worker/workspace/build/src/obj-firefox/js/src/jsapi-tests'
> [task 2018-07-06T03:24:15.448Z] 03:24:15     INFO -  make[4]: Nothing to be
> done for 'syms'.
> [task 2018-07-06T03:30:37.788Z] 03:30:37     INFO -  make[4]: Entering
> directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/library'
> 
> Looks like check_binary.py is taking ~6 minutes to run??

Probably not. Things are printed out when they finish. What finished at 3:30:37 is linking libxul. Which usually starts in parallel of linking jsapi-tests. So it took longer than 6 minutes, but nothing else happened between jsapi-tests finishing and libxul finishing.

> [task 2018-07-06T03:31:04.619Z] 03:31:04     INFO -  while processing
> /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-apple-
> darwin/release/libgkrust.a(gkrust-4c70ef1af5b0b889.gkrust0.rcgu.o):
> [task 2018-07-06T03:31:04.619Z] 03:31:04     INFO -  warning: no mapping for
> range.
> 
> There's hundreds (maybe thousands) of these.

You haven't looked at normal logs in a while have you? :)
 
> [task 2018-07-06T03:40:53.793Z] 03:40:53     INFO -  warning: cannot open
> debug object "/tmp/thinlto.o/193.o": No such file or directory
> 
> And a few thousand of these.

Cf comment 5, indeed.
Breakpad symbols are definitely busted :(
Depends on: 1474024
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/2ba41123a4e2
Enable LTO on macOS builds. r=ted
Backed out for mac signing task failures and multiple other failures e.g. browser_all_files_referenced.js

Backout link: https://hg.mozilla.org/integration/autoland/rev/ec55053b3377c73713af99142fa123ae909921ea

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=2ba41123a4e22b39ec064e2411f60a8d9e968ae5


M(1) test: https://treeherder.mozilla.org/logviewer.html#?job_id=188481017&repo=autoland

17:42:18     INFO - TEST-START | dom/canvas/test/test_imagebitmap_extensions.html
17:42:18     INFO - TEST-INFO | started process screencapture
17:42:19     INFO - TEST-INFO | screencapture: exit 0
17:42:19     INFO - <snipped 315 output lines - if you need more context, please use SimpleTest.requestCompleteLog() in your test>
17:42:19     INFO - Buffered messages logged at 17:42:18
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,0)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,1)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,1)channnel(G): dstImageDataValue:255 should equal to dstDataValue_G: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,1)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,2)channnel(R): dstImageDataValue:128 should equal to dstDataValue_R: 128 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,2)channnel(G): dstImageDataValue:128 should equal to dstDataValue_G: 128 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,2)channnel(B): dstImageDataValue:128 should equal to dstDataValue_B: 128 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [RGB24 -> RGBA32] pixel(2,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | Should get a valid srcBitmap. 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | srcBitmap.findOptimalFormat():BGR24 should equal to sourceFromat:BGR24 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,0)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,0)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,1)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,1)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,1)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,2)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,2)channnel(G): dstImageDataValue:255 should equal to dstDataValue_G: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,2)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(0,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,0)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,0)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,1)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,1)channnel(G): dstImageDataValue:255 should equal to dstDataValue_G: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,1)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,2)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,2)channnel(G): dstImageDataValue:255 should equal to dstDataValue_G: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,2)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(1,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,0)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,0)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,1)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,1)channnel(G): dstImageDataValue:255 should equal to dstDataValue_G: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,1)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,2)channnel(R): dstImageDataValue:128 should equal to dstDataValue_R: 128 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,2)channnel(G): dstImageDataValue:128 should equal to dstDataValue_G: 128 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,2)channnel(B): dstImageDataValue:128 should equal to dstDataValue_B: 128 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [BGR24 -> RGBA32] pixel(2,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | Should get a valid srcBitmap. 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | srcBitmap.findOptimalFormat():YUV444P should equal to sourceFromat:YUV444P 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,0)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,0)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,1)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 254 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,1)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,1)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,2)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,2)channnel(G): dstImageDataValue:254 should equal to dstDataValue_G: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,2)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 1 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(0,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,0)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,0)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 251 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,1)channnel(R): dstImageDataValue:254 should equal to dstDataValue_R: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,1)channnel(G): dstImageDataValue:254 should equal to dstDataValue_G: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,1)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 2 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,2)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,2)channnel(G): dstImageDataValue:254 should equal to dstDataValue_G: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,2)channnel(B): dstImageDataValue:254 should equal to dstDataValue_B: 252 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(1,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,0)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,0)channnel(B): dstImageDataValue:255 should equal to dstDataValue_B: 252 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,1)channnel(R): dstImageDataValue:254 should equal to dstDataValue_R: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,1)channnel(G): dstImageDataValue:254 should equal to dstDataValue_G: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,1)channnel(B): dstImageDataValue:254 should equal to dstDataValue_B: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,2)channnel(R): dstImageDataValue:128 should equal to dstDataValue_R: 127 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,2)channnel(G): dstImageDataValue:128 should equal to dstDataValue_G: 127 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,2)channnel(B): dstImageDataValue:128 should equal to dstDataValue_B: 127 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV444P -> RGBA32] pixel(2,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | Should get a valid srcBitmap. 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | srcBitmap.findOptimalFormat():YUV422P should equal to sourceFromat:YUV422P 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,0)channnel(R): dstImageDataValue:89 should equal to dstDataValue_R: 89 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,0)channnel(G): dstImageDataValue:0 should equal to dstDataValue_G: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,0)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,0)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,1)channnel(R): dstImageDataValue:166 should equal to dstDataValue_R: 165 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,1)channnel(G): dstImageDataValue:38 should equal to dstDataValue_G: 38 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,1)channnel(B): dstImageDataValue:38 should equal to dstDataValue_B: 38 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,1)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,2)channnel(R): dstImageDataValue:0 should equal to dstDataValue_R: 0 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,2)channnel(G): dstImageDataValue:254 should equal to dstDataValue_G: 253 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,2)channnel(B): dstImageDataValue:0 should equal to dstDataValue_B: 1 
17:42:19     INFO - TEST-PASS | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(0,2)channnel(A): dstImageDataValue:255 should equal to dstDataValue_A: 255 
17:42:19     INFO - Buffered messages finished
17:42:19     INFO - TEST-UNEXPECTED-FAIL | dom/canvas/test/test_imagebitmap_extensions.html | [YUV422P -> RGBA32] pixel(1,0)channnel(R): dstImageDataValue:255 should equal to dstDataValue_R: 28 
17:42:19     INFO -     window.onmessage@dom/canvas/test/test_imagebitmap_extensions.html:31:9
17:42:19     INFO -     EventHandlerNonNull*@dom/canvas/test/test_imagebitmap_extensions.html:29:5
17:42:19     INFO - Not taking screenshot here: see the one that was previously logged 

M(bc3) failure: https://treeherder.mozilla.org/logviewer.html#?job_id=188485738&repo=autoland&lineNumber=1811

18:11:05     INFO - TEST-START | browser/base/content/test/static/browser_all_files_referenced.js
18:11:05     INFO - GECKO(1974) | 2018-07-16 18:11:05.573 plugin-container[1977:12889] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8e57, name = 'com.apple.tsm.portname'
18:11:05     INFO - GECKO(1974) | See /usr/include/servers/bootstrap_defs.h for the error codes.
18:11:09     INFO - GECKO(1974) | 2018-07-16 18:11:09.737 plugin-container[1978:12935] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x923b, name = 'com.apple.tsm.portname'
18:11:09     INFO - GECKO(1974) | See /usr/include/servers/bootstrap_defs.h for the error codes.
18:11:15     INFO - TEST-INFO | started process screencapture
18:11:15     INFO - TEST-INFO | screencapture: exit 0
18:11:15     INFO - Buffered messages logged at 18:11:05
18:11:15     INFO - Entering test bound checkAllTheFiles
18:11:15     INFO - Buffered messages logged at 18:11:08
18:11:15     INFO - Console message: [JavaScript Warning: "Use of nsIFile in content process is deprecated." {file: "resource://gre/modules/FileUtils.jsm" line: 170}]
18:11:15     INFO - Buffered messages logged at 18:11:15
18:11:15     INFO - indirectly whitelisted file: chrome://marionette/content/test_dialog.dtd used from chrome://marionette/content/test_dialog.xul
18:11:15     INFO - indirectly whitelisted file: chrome://global-platform/locale/intl.properties used from resource://gre/greprefs.js
18:11:15     INFO - indirectly whitelisted file: chrome://marionette/content/test.xul used from chrome://marionette/content/test_anonymous_content.xul
18:11:15     INFO - indirectly whitelisted file: chrome://marionette/content/test_nested_iframe.xul used from chrome://marionette/content/test.xul
18:11:15     INFO - indirectly whitelisted file: chrome://marionette/content/test2.xul used from chrome://marionette/content/test.xul,chrome://marionette/content/test_nested_iframe.xul
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/addonutils.js used from resource://services-sync/engines/addons.js
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/Promise-backend.js used from resource://gre/modules/Promise.jsm,resource://devtools/shared/worker/loader.js,resource://devtools/shared/Loader.jsm
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/engines/clients.js used from resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: chrome://pippki/content/resetpassword.js used from chrome://pippki/content/resetpassword.xul
18:11:15     INFO - indirectly whitelisted file: chrome://global/content/accessibility/content-script.js used from resource://gre/modules/accessibility/AccessFu.jsm
18:11:15     INFO - indirectly whitelisted file: chrome://global/content/remote-test-ipc.js used from chrome://global/content/test-ipc.xul
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/telemetry.js used from resource://services-sync/bookmark_repair.js,resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/stages/enginesync.js used from resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/addonsreconciler.js used from resource://services-sync/engines/addons.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/collection_validator.js used from resource://services-sync/engines/addons.js,resource://services-sync/engines/forms.js,resource://services-sync/engines/passwords.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/policies.js used from resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/bookmark_validator.js used from resource://services-sync/engines/bookmarks.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/browserid_identity.js used from resource://services-sync/telemetry.js,resource://services-sync/status.js
18:11:15     INFO - indirectly whitelisted file: resource://services-common/tokenserverclient.js used from resource://services-sync/browserid_identity.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/status.js used from resource://services-sync/telemetry.js,resource://services-sync/policies.js,resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/collection_repair.js used from resource://services-sync/engines/clients.js,resource://services-sync/bookmark_repair.js,resource://services-sync/doctor.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/stages/declined.js used from resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: chrome://pippki/content/load_device.js used from chrome://pippki/content/load_device.xul
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/engines.js used from resource://services-sync/engines/clients.js,resource://services-sync/engines/addons.js,resource://services-sync/engines/forms.js,resource://services-sync/engines/history.js,resource://services-sync/engines/tabs.js,resource://services-sync/engines/bookmarks.js,resource://services-sync/engines/extension-storage.js,resource://services-sync/engines/passwords.js,resource://services-sync/engines/prefs.js,resource://services-sync/service.js,resource://formautofill/FormAutofillSync.jsm
18:11:15     INFO - indirectly whitelisted file: resource://services-common/logmanager.js used from resource://services-sync/policies.js
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/EventManager.jsm used from chrome://global/content/accessibility/content-script.js
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Utils.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/Traversal.jsm,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/Presentation.jsm,resource://gre/modules/accessibility/AccessFu.jsm,resource://gre/modules/accessibility/OutputGenerator.jsm,resource://gre/modules/accessibility/ContentControl.jsm
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/SyncedBookmarksMirror.jsm used from resource://services-sync/engines/bookmarks.js
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Presentation.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/AccessFu.jsm,resource://gre/modules/accessibility/ContentControl.jsm
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/OutputGenerator.jsm used from resource://gre/modules/accessibility/Presentation.jsm
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Constants.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/Traversal.jsm,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/Utils.jsm,resource://gre/modules/accessibility/Presentation.jsm,resource://gre/modules/accessibility/OutputGenerator.jsm,resource://gre/modules/accessibility/ContentControl.jsm
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/ContentControl.jsm used from chrome://global/content/accessibility/content-script.js
18:11:15     INFO - indirectly whitelisted file: chrome://passwordmgr/content/recipes.json used from resource://gre/greprefs.js
18:11:15     INFO - indirectly whitelisted file: resource://formautofill/FormAutofillSync.jsm used from resource://services-sync/service.js
18:11:15     INFO - indirectly whitelisted file: chrome://global/locale/AccessFu.properties used from resource://gre/modules/accessibility/Utils.jsm
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/bookmark_repair.js used from resource://services-sync/collection_repair.js
18:11:15     INFO - indirectly whitelisted file: resource://services-sync/doctor.js used from resource://services-sync/bookmark_repair.js,resource://services-sync/stages/enginesync.js
18:11:15     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Traversal.jsm used from resource://gre/modules/accessibility/ContentControl.jsm
18:11:15     INFO - Buffered messages finished
18:11:15     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | there should be no unreferenced files - Got 3, expected 0
18:11:15     INFO - Stack trace:
18:11:15     INFO - chrome://mochikit/content/browser-test.js:test_is:1305
18:11:15     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:684
18:11:15     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1103
18:11:15     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1094
18:11:15     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:996
18:11:15     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
18:11:15     INFO - Not taking screenshot here: see the one that was previously logged
18:11:15     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | unreferenced file: chrome://browser/content/aboutNetError-new.xhtml - 
18:11:15     INFO - Stack trace:
18:11:15     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:688
18:11:15     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1103
18:11:15     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1094
18:11:15     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:996
18:11:15     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
18:11:15     INFO - Not taking screenshot here: see the one that was previously logged
18:11:15     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | file only referenced from unreferenced files: chrome://browser/skin/aboutNetError-new.css referenced from chrome://browser/content/aboutNetError-new.xhtml - 
18:11:15     INFO - Stack trace:
18:11:15     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:694
18:11:15     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1103
18:11:15     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1094
18:11:15     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:996
18:11:15     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
18:11:15     INFO - Not taking screenshot here: see the one that was previously logged

M(mda) failure: https://treeherder.mozilla.org/logviewer.html#?job_id=188487414&repo=autoland&lineNumber=91762

19:00:30     INFO - TEST-INFO | Main app process: exit 0
19:00:30     INFO - runtests.py | Application ran for: 0:05:27.877126
19:00:30     INFO - zombiecheck | Reading PID log: /var/folders/lg/9yv21j1d73v83vnn549cxpsc00000w/T/tmpmQxow_pidlog
19:00:30     INFO - ==> process 871 launched child process 872
19:00:30     INFO - ==> process 871 launched child process 873
19:00:30     INFO - ==> process 871 launched child process 874
19:00:30     INFO - ==> process 871 launched child process 885
19:00:30     INFO - ==> process 871 launched child process 887
19:00:30     INFO - ==> process 871 launched child process 888
19:00:30     INFO - zombiecheck | Checking for orphan process with PID: 872
19:00:30     INFO - zombiecheck | Checking for orphan process with PID: 873
19:00:30     INFO - zombiecheck | Checking for orphan process with PID: 874
19:00:30     INFO - zombiecheck | Checking for orphan process with PID: 885
19:00:30     INFO - zombiecheck | Checking for orphan process with PID: 887
19:00:30     INFO - zombiecheck | Checking for orphan process with PID: 888
19:00:30     INFO - mozcrash Downloading symbols from: https://queue.taskcluster.net/v1/task/NusFepBQQy-wTiifVnkWBQ/artifacts/public/build/target.crashreporter-symbols.zip
19:00:47     INFO - mozcrash Copy/paste: /Users/cltbld/tasks/task_1531788510/build/macosx64-minidump_stackwalk /var/folders/lg/9yv21j1d73v83vnn549cxpsc00000w/T/tmphJoAkv.mozrunner/minidumps/B07C3D76-9429-4D27-A607-1EA6279F5C74.dmp /var/folders/lg/9yv21j1d73v83vnn549cxpsc00000w/T/tmp1SLEkG
19:01:04     INFO - mozcrash Saved minidump as /Users/cltbld/tasks/task_1531788510/build/blobber_upload_dir/B07C3D76-9429-4D27-A607-1EA6279F5C74.dmp
19:01:04     INFO - mozcrash Saved app info as /Users/cltbld/tasks/task_1531788510/build/blobber_upload_dir/B07C3D76-9429-4D27-A607-1EA6279F5C74.extra
19:01:04     INFO - PROCESS-CRASH | Main app process exited normally | application crashed [@ vpx_sum_squares_2d_i16_nxn_sse2]
19:01:04     INFO - Crash dump filename: /var/folders/lg/9yv21j1d73v83vnn549cxpsc00000w/T/tmphJoAkv.mozrunner/minidumps/B07C3D76-9429-4D27-A607-1EA6279F5C74.dmp
19:01:04     INFO - Operating system: Mac OS X
19:01:04     INFO -                   10.10.5 14F27
19:01:04     INFO - CPU: amd64
19:01:04     INFO -      family 6 model 69 stepping 1
19:01:04     INFO -      4 CPUs
19:01:04     INFO - 
19:01:04     INFO - GPU: UNKNOWN
19:01:04     INFO - 
19:01:04     INFO - Crash reason:  EXC_BAD_ACCESS / EXC_I386_GPFLT
19:01:04     INFO - Crash address: 0x0
19:01:04     INFO - Process uptime: 327 seconds
19:01:04     INFO - 
19:01:04     INFO - Thread 63 (crashed)
19:01:04     INFO -  0  XUL!vpx_sum_squares_2d_i16_nxn_sse2 [sum_squares_sse2.c:2ba41123a4e22b39ec064e2411f60a8d9e968ae5 : 0 + 0x26]
19:01:04     INFO -     rax = 0x0000000120fe50a8   rdx = 0x0000000000000003
19:01:04     INFO -     rcx = 0x0000000120fe5098   rbx = 0x0000000120fe50a0
19:01:04     INFO -     rsi = 0x0000000000000000   rdi = 0x0000000120fe5090
19:01:04     INFO -     rbp = 0x000000012ca68620   rsp = 0x000000012ca685f8
19:01:04     INFO -      r8 = 0x0000000000000040    r9 = 0x0000000000000003
19:01:04     INFO -     r10 = 0x0000000120fe50c8   r11 = 0x0000000120fe50c0
19:01:04     INFO -     r12 = 0x0000000120fe50b0   r13 = 0x000000000000000c
19:01:04     INFO -     r14 = 0x0000000120fe50b8   r15 = 0x0000000000000000
19:01:04     INFO -     rip = 0x00000001050a6505
19:01:04     INFO -     Found by: given as instruction pointer in context
19:01:04     INFO -  1  XUL!block_rd_txfm [sum_squares_sse2.c:2ba41123a4e22b39ec064e2411f60a8d9e968ae5 : 126 + 0x5]
19:01:04     INFO -     rbp = 0x000000012ca68730   rsp = 0x000000012ca68630
19:01:04     INFO -     rip = 0x000000010505b714
19:01:04     INFO -     Found by: previous frame's frame pointer
19:01:04     INFO -  2  XUL!super_block_uvrd [vp9_blockd.c:2ba41123a4e22b39ec064e2411f60a8d9e968ae5 : 69 + 0x22]
19:01:04     INFO -     rbp = 0x000000012ca68870   rsp = 0x000000012ca68740
19:01:04     INFO -     rip = 0x000000010505a982
19:01:04     INFO -     Found by: previous frame's frame pointer
19:01:04     INFO -  3  XUL!rd_pick_intra_sbuv_mode [vp9_rdopt.c:2ba41123a4e22b39ec064e2411f60a8d9e968ae5 : 1369 + 0x22]
19:01:04     INFO -     rbp = 0x000000012ca68900   rsp = 0x000000012ca68880
19:01:04     INFO -     rip = 0x000000010504e5e6
19:01:04     INFO -     Found by: previous frame's frame pointer
19:01:04     INFO -  4  XUL!vp9_rd_pick_intra_mode_sb [vp9_rdopt.c:2ba41123a4e22b39ec064e2411f60a8d9e968ae5 : 2853 + 0x12]
19:01:04     INFO -     rbp = 0x000000012ca689f0   rsp = 0x000000012ca68910
19:01:04     INFO -     rip = 0x000000010504cfbc
19:01:04     INFO -     Found by: previous frame's frame pointer
19:01:04     INFO -  5  XUL!nonrd_pick_sb_modes [vp9_encodeframe.c:2ba41123a4e22b39ec064e2411f60a8d9e968ae5 : 3193 + 0x1f]
19:01:04     INFO -     rbp = 0x000000012ca68af0   rsp = 0x000000012ca68a00
19:01:04     INFO -     rip = 0x0000000104ff9333
19:01:04     INFO -     Found by: previous frame's frame pointer
Flags: needinfo?(mh+mozilla)
Depends on: 1476174
(In reply to Raul Gurzau (:RaulGurzau) from comment #10)
> M(bc3) failure:
> https://treeherder.mozilla.org/logviewer.
> html#?job_id=188485738&repo=autoland&lineNumber=1811

This one is actually a red herring. While it did happens on retriggers of the same build, it didn't happen on any of the subsequent builds between the landing of this bug and its backout.
Flags: needinfo?(mh+mozilla)
Depends on: 1478269
Depends on: 1478293
Depends on: 1478917
Depends on: 1485503
Backed out changeset c248b33135af (bug 1473786) for failures at browser/base/content/test/static/browser_all_files_referenced.js


Backout link: https://hg.mozilla.org/integration/mozilla-inbound/rev/87a5f1f234e5d4a18f4c0d0945988b3561a503f2

Push with failures:https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=9481b9ecaf2f691125d4c19f33aafe9037b16d06

Log link: https://treeherder.mozilla.org/logviewer.html#?job_id=197515798&repo=mozilla-inbound&lineNumber=1838

Log snippet: 

17:34:39     INFO - TEST-START | browser/base/content/test/static/browser_all_files_referenced.js
17:34:49     INFO - TEST-INFO | started process screencapture
17:34:49     INFO - TEST-INFO | screencapture: exit 0
17:34:49     INFO - Buffered messages logged at 17:34:39
17:34:49     INFO - Entering test bound checkAllTheFiles
17:34:49     INFO - Buffered messages logged at 17:34:49
17:34:49     INFO - indirectly whitelisted file: chrome://marionette/content/test_dialog.dtd used from chrome://marionette/content/test_dialog.xul
17:34:49     INFO - indirectly whitelisted file: chrome://global-platform/locale/intl.properties used from resource://gre/greprefs.js
17:34:49     INFO - indirectly whitelisted file: chrome://marionette/content/test.xul used from chrome://marionette/content/test_anonymous_content.xul
17:34:49     INFO - indirectly whitelisted file: chrome://marionette/content/test_nested_iframe.xul used from chrome://marionette/content/test.xul
17:34:49     INFO - indirectly whitelisted file: chrome://marionette/content/test2.xul used from chrome://marionette/content/test.xul,chrome://marionette/content/test_nested_iframe.xul
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/addonutils.js used from resource://services-sync/engines/addons.js
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/Promise-backend.js used from resource://gre/modules/Promise.jsm,resource://devtools/shared/worker/loader.js,resource://devtools/shared/Loader.jsm
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/engines/clients.js used from resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: chrome://pippki/content/resetpassword.js used from chrome://pippki/content/resetpassword.xul
17:34:49     INFO - indirectly whitelisted file: chrome://global/content/accessibility/content-script.js used from resource://gre/modules/accessibility/AccessFu.jsm
17:34:49     INFO - indirectly whitelisted file: chrome://global/content/remote-test-ipc.js used from chrome://global/content/test-ipc.xul
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/telemetry.js used from resource://services-sync/bookmark_repair.js,resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/stages/enginesync.js used from resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/addonsreconciler.js used from resource://services-sync/engines/addons.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/collection_validator.js used from resource://services-sync/engines/addons.js,resource://services-sync/engines/forms.js,resource://services-sync/engines/passwords.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/policies.js used from resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/bookmark_validator.js used from resource://services-sync/engines/bookmarks.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/browserid_identity.js used from resource://services-sync/telemetry.js,resource://services-sync/status.js
17:34:49     INFO - indirectly whitelisted file: resource://services-common/tokenserverclient.js used from resource://services-sync/browserid_identity.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/status.js used from resource://services-sync/telemetry.js,resource://services-sync/policies.js,resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/collection_repair.js used from resource://services-sync/engines/clients.js,resource://services-sync/bookmark_repair.js,resource://services-sync/doctor.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/stages/declined.js used from resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: chrome://pippki/content/load_device.js used from chrome://pippki/content/load_device.xul
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/engines.js used from resource://services-sync/engines/clients.js,resource://services-sync/engines/addons.js,resource://services-sync/engines/forms.js,resource://services-sync/engines/history.js,resource://services-sync/engines/tabs.js,resource://services-sync/engines/bookmarks.js,resource://services-sync/engines/extension-storage.js,resource://services-sync/engines/passwords.js,resource://services-sync/engines/prefs.js,resource://services-sync/service.js,resource://formautofill/FormAutofillSync.jsm
17:34:49     INFO - indirectly whitelisted file: resource://services-common/logmanager.js used from resource://services-sync/policies.js
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/EventManager.jsm used from chrome://global/content/accessibility/content-script.js
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/Http.jsm used from resource://app/modules/translation/GoogleTranslator.jsm,resource://app/modules/translation/YandexTranslator.jsm,resource://app/modules/translation/BingTranslator.jsm
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Utils.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/Traversal.jsm,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/Presentation.jsm,resource://gre/modules/accessibility/AccessFu.jsm,resource://gre/modules/accessibility/OutputGenerator.jsm,resource://gre/modules/accessibility/ContentControl.jsm
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/SyncedBookmarksMirror.jsm used from resource://services-sync/engines/bookmarks.js
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Presentation.jsm used from resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/AccessFu.jsm,resource://gre/modules/accessibility/ContentControl.jsm
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/OutputGenerator.jsm used from resource://gre/modules/accessibility/Presentation.jsm
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Constants.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/Traversal.jsm,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/Utils.jsm,resource://gre/modules/accessibility/Presentation.jsm,resource://gre/modules/accessibility/OutputGenerator.jsm,resource://gre/modules/accessibility/ContentControl.jsm
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/ContentControl.jsm used from chrome://global/content/accessibility/content-script.js
17:34:49     INFO - indirectly whitelisted file: chrome://passwordmgr/content/recipes.json used from resource://gre/greprefs.js
17:34:49     INFO - indirectly whitelisted file: resource://formautofill/FormAutofillSync.jsm used from resource://services-sync/service.js
17:34:49     INFO - indirectly whitelisted file: chrome://global/locale/AccessFu.properties used from resource://gre/modules/accessibility/Utils.jsm
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/bookmark_repair.js used from resource://services-sync/collection_repair.js
17:34:49     INFO - indirectly whitelisted file: resource://services-sync/doctor.js used from resource://services-sync/bookmark_repair.js,resource://services-sync/stages/enginesync.js
17:34:49     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Traversal.jsm used from resource://gre/modules/accessibility/ContentControl.jsm
17:34:49     INFO - Buffered messages finished
17:34:49     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | there should be no unreferenced files - Got 4, expected 0
17:34:49     INFO - Stack trace:
17:34:49     INFO - chrome://mochikit/content/browser-test.js:test_is:1304
17:34:49     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:762
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093
17:34:49     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:995
17:34:49     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
17:34:49     INFO - Not taking screenshot here: see the one that was previously logged
17:34:49     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | unreferenced file: chrome://browser/content/aboutNetError-new.xhtml - 
17:34:49     INFO - Stack trace:
17:34:49     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:766
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093
17:34:49     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:995
17:34:49     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
17:34:49     INFO - Not taking screenshot here: see the one that was previously logged
17:34:49     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | file only referenced from unreferenced files: chrome://browser/content/illustrations/blue-berror.svg referenced from chrome://browser/skin/aboutNetError-new.css - 
17:34:49     INFO - Stack trace:
17:34:49     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:772
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093
17:34:49     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:995
17:34:49     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
17:34:49     INFO - Not taking screenshot here: see the one that was previously logged
17:34:49     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | file only referenced from unreferenced files: chrome://browser/skin/aboutNetError-new.css referenced from chrome://browser/content/aboutNetError-new.xhtml - 
17:34:49     INFO - Stack trace:
17:34:49     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:772
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093
17:34:49     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:995
17:34:49     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
17:34:49     INFO - Not taking screenshot here: see the one that was previously logged
17:34:49     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | file only referenced from unreferenced files: chrome://browser/skin/cert-error-new.svg referenced from chrome://browser/skin/aboutNetError-new.css - 
17:34:49     INFO - Stack trace:
17:34:49     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:772
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102
17:34:49     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093
17:34:49     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:995
17:34:49     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
17:34:49     INFO - ignored unused whitelist entry: resource://app/blocklist.xml
17:34:49     INFO - ignored unused whitelist entry: resource://gre/gmp-clearkey/0.1/manifest.json
17:34:49     INFO - ignored unused whitelist entry: resource://gre/res/test.properties
17:34:49     INFO - missing file: resource://gre/modules/commonjs/toolkit/loader.js
17:34:49     INFO - missing file: chrome://help/content/help.js referenced from chrome://pippki/content/protectedAuth.xul
17:34:49     INFO - missing file: resource://gre/modules/GeckoViewTelemetryController.jsm referenced from resource://gre/components/ContentProcessSingleton.js
17:34:49     INFO - missing file: resource://services-sync/)%20==%200)%20%7B referenced from resource://services-sync/addonutils.js
17:34:49     INFO - missing file: resource://gre/modules/worker/myModule.js referenced from resource://gre/modules/workers/require.js
17:34:49     INFO - missing file: resource://gre/modules/workers/SimpleTest.js referenced from resource://gre/modules/workers/require.js
17:34:49     INFO - missing file: resource://gre/modules/workers/Logger.js referenced from resource://gre/modules/workers/require.js
17:34:49     INFO - missing file: resource://gre/modules/WindowsRegistry.jsm referenced from resource://gre/components/nsUpdateService.js,resource://gre/modules/NativeManifests.jsm,resource://gre/modules/UpdateUtils.jsm,resource://gre/modules/TelemetryEnvironment.jsm,resource://app/components/nsBrowserGlue.js,resource://app/modules/MigrationUtils.jsm,resource://app/modules/ShellService.jsm
17:34:49     INFO - missing file: resource://gre/modules/glenn.htm referenced from resource://gre/modules/microformat-shiv.js
Flags: needinfo?(mh+mozilla)
I'm pretty sure it's an unrelated intermittent. It's gone 2 pushes down the road, and it's not the first time that I see it happen.
Flags: needinfo?(mh+mozilla)
Backed out for browser chrome failures on browser_all_files_referenced.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=success&filter-classifiedState=unclassified&filter-searchStr=OS%20X%2010.10%20opt%20Mochitests%20with%20e10s%20test-macosx64%2Fopt-mochitest-browser-chrome-e10s-1%20M-e10s(bc1)&fromchange=87a5f1f234e5d4a18f4c0d0945988b3561a503f2&tochange=d1ded0e748012af9df9d358620dcb6c5c23f99d0&selectedJob=197541306

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=197541306&repo=mozilla-inbound&lineNumber=1870

Backout link: https://hg.mozilla.org/integration/mozilla-inbound/rev/d1ded0e748012af9df9d358620dcb6c5c23f99d0
 
21:52:51     INFO - TEST-START | browser/base/content/test/static/browser_all_files_referenced.js
21:53:02     INFO - TEST-INFO | started process screencapture
21:53:02     INFO - TEST-INFO | screencapture: exit 0
21:53:02     INFO - Buffered messages logged at 21:52:51
21:53:02     INFO - Entering test bound checkAllTheFiles
21:53:02     INFO - Buffered messages logged at 21:53:02
21:53:02     INFO - indirectly whitelisted file: chrome://marionette/content/test_dialog.dtd used from chrome://marionette/content/test_dialog.xul
21:53:02     INFO - indirectly whitelisted file: chrome://global-platform/locale/intl.properties used from resource://gre/greprefs.js
21:53:02     INFO - indirectly whitelisted file: chrome://marionette/content/test.xul used from chrome://marionette/content/test_anonymous_content.xul
21:53:02     INFO - indirectly whitelisted file: chrome://marionette/content/test_nested_iframe.xul used from chrome://marionette/content/test.xul
21:53:02     INFO - indirectly whitelisted file: chrome://marionette/content/test2.xul used from chrome://marionette/content/test.xul,chrome://marionette/content/test_nested_iframe.xul
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/addonutils.js used from resource://services-sync/engines/addons.js
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/Promise-backend.js used from resource://gre/modules/Promise.jsm,resource://devtools/shared/worker/loader.js,resource://devtools/shared/Loader.jsm
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/engines/clients.js used from resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: chrome://pippki/content/resetpassword.js used from chrome://pippki/content/resetpassword.xul
21:53:02     INFO - indirectly whitelisted file: chrome://global/content/accessibility/content-script.js used from resource://gre/modules/accessibility/AccessFu.jsm
21:53:02     INFO - indirectly whitelisted file: chrome://global/content/remote-test-ipc.js used from chrome://global/content/test-ipc.xul
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/telemetry.js used from resource://services-sync/bookmark_repair.js,resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/stages/enginesync.js used from resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/addonsreconciler.js used from resource://services-sync/engines/addons.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/collection_validator.js used from resource://services-sync/engines/addons.js,resource://services-sync/engines/forms.js,resource://services-sync/engines/passwords.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/policies.js used from resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/bookmark_validator.js used from resource://services-sync/engines/bookmarks.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/browserid_identity.js used from resource://services-sync/telemetry.js,resource://services-sync/status.js
21:53:02     INFO - indirectly whitelisted file: resource://services-common/tokenserverclient.js used from resource://services-sync/browserid_identity.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/status.js used from resource://services-sync/telemetry.js,resource://services-sync/policies.js,resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/collection_repair.js used from resource://services-sync/engines/clients.js,resource://services-sync/bookmark_repair.js,resource://services-sync/doctor.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/stages/declined.js used from resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: chrome://pippki/content/load_device.js used from chrome://pippki/content/load_device.xul
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/engines.js used from resource://services-sync/engines/clients.js,resource://services-sync/engines/addons.js,resource://services-sync/engines/forms.js,resource://services-sync/engines/history.js,resource://services-sync/engines/tabs.js,resource://services-sync/engines/bookmarks.js,resource://services-sync/engines/extension-storage.js,resource://services-sync/engines/passwords.js,resource://services-sync/engines/prefs.js,resource://services-sync/service.js,resource://formautofill/FormAutofillSync.jsm
21:53:02     INFO - indirectly whitelisted file: resource://services-common/logmanager.js used from resource://services-sync/policies.js
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/EventManager.jsm used from chrome://global/content/accessibility/content-script.js
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/Http.jsm used from resource://app/modules/translation/GoogleTranslator.jsm,resource://app/modules/translation/YandexTranslator.jsm,resource://app/modules/translation/BingTranslator.jsm
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Utils.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/Traversal.jsm,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/Presentation.jsm,resource://gre/modules/accessibility/AccessFu.jsm,resource://gre/modules/accessibility/OutputGenerator.jsm,resource://gre/modules/accessibility/ContentControl.jsm
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/SyncedBookmarksMirror.jsm used from resource://services-sync/engines/bookmarks.js
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Presentation.jsm used from resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/AccessFu.jsm,resource://gre/modules/accessibility/ContentControl.jsm
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/OutputGenerator.jsm used from resource://gre/modules/accessibility/Presentation.jsm
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Constants.jsm used from chrome://global/content/accessibility/content-script.js,resource://gre/modules/accessibility/Traversal.jsm,resource://gre/modules/accessibility/EventManager.jsm,resource://gre/modules/accessibility/Utils.jsm,resource://gre/modules/accessibility/Presentation.jsm,resource://gre/modules/accessibility/OutputGenerator.jsm,resource://gre/modules/accessibility/ContentControl.jsm
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/ContentControl.jsm used from chrome://global/content/accessibility/content-script.js
21:53:02     INFO - indirectly whitelisted file: chrome://passwordmgr/content/recipes.json used from resource://gre/greprefs.js
21:53:02     INFO - indirectly whitelisted file: resource://formautofill/FormAutofillSync.jsm used from resource://services-sync/service.js
21:53:02     INFO - indirectly whitelisted file: chrome://global/locale/AccessFu.properties used from resource://gre/modules/accessibility/Utils.jsm
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/bookmark_repair.js used from resource://services-sync/collection_repair.js
21:53:02     INFO - indirectly whitelisted file: resource://services-sync/doctor.js used from resource://services-sync/bookmark_repair.js,resource://services-sync/stages/enginesync.js
21:53:02     INFO - indirectly whitelisted file: resource://gre/modules/accessibility/Traversal.jsm used from resource://gre/modules/accessibility/ContentControl.jsm
21:53:02     INFO - Buffered messages finished
21:53:02     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | there should be no unreferenced files - Got 4, expected 0
21:53:02     INFO - Stack trace:
21:53:02     INFO - chrome://mochikit/content/browser-test.js:test_is:1304
21:53:02     INFO - chrome://mochitests/content/browser/browser/base/content/test/static/browser_all_files_referenced.js:checkAllTheFiles:762
21:53:02     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102
21:53:02     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093
21:53:02     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:995
21:53:02     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:795
21:53:02     INFO - Not taking screenshot here: see the one that was previously logged

Florian can you take a look over this test and see what's going on here? Thank you.
Flags: needinfo?(florian)
Specifically, it's complaining about:
TEST-UNEXPECTED-FAIL | browser/base/content/test/static/browser_all_files_referenced.js | unreferenced file: chrome://browser/content/aboutNetError-new.xhtml - 

But in fact, I don't understand how a) that's relevant to enabling LTO b) is not already an error, since apparently, the only place the file is referenced is C++ code (and conditionally, through a pref)
So this is interesting. The LTOed libxul does *not* contain the string "aboutNetError-new", *but* the new cert error page *does* display correctly.

Looking at the code of the AboutRedirector::NewChannel, this is the assembly that corresponds to url.AssignASCII("chrome://browser/content/aboutNetError-new.xhtml"):

    0x10678cb0b <+2347>: movl   -0xd8(%rbp), %edx
    0x10678cb11 <+2353>: leaq   -0xe0(%rbp), %rdi
    0x10678cb18 <+2360>: xorl   %esi, %esi
    0x10678cb1a <+2362>: movl   $0x30, %ecx
    0x10678cb1f <+2367>: callq  0x102266c00               ; nsTSubstring<char>::ReplacePrep(unsigned int, unsigned int, unsigned int)
    0x10678cb24 <+2372>: testb  %al, %al
    0x10678cb26 <+2374>: je     0x10678cf0b               ; <+3371>
    0x10678cb2c <+2380>: movq   -0xe0(%rbp), %rax
    0x10678cb33 <+2387>: movabsq $0x6c6d7468782e7765, %rcx ; imm = 0x6C6D7468782E7765 
    0x10678cb3d <+2397>: movq   %rcx, 0x28(%rax)
    0x10678cb41 <+2401>: movabsq $0x6e2d726f72724574, %rcx ; imm = 0x6E2D726F72724574 
    0x10678cb4b <+2411>: movq   %rcx, 0x20(%rax)
    0x10678cb4f <+2415>: movabsq $0x654e74756f62612f, %rcx ; imm = 0x654E74756F62612F 
    0x10678cb59 <+2425>: movq   %rcx, 0x18(%rax)
    0x10678cb5d <+2429>: movabsq $0x746e65746e6f632f, %rcx ; imm = 0x746E65746E6F632F 
    0x10678cb67 <+2439>: movq   %rcx, 0x10(%rax)
    0x10678cb6b <+2443>: movabsq $0x726573776f72622f, %rcx ; imm = 0x726573776F72622F 
    0x10678cb75 <+2453>: movq   %rcx, 0x8(%rax)
    0x10678cb79 <+2457>: movabsq $0x2f3a656d6f726863, %rcx ; imm = 0x2F3A656D6F726863 
    0x10678cb83 <+2467>: movq   %rcx, (%rax)
    (...)

Guess what all those immediate values are... yes, the string contents, in little endian, and split in parts 8 bytes each:

$ echo -n chrome://browser/content/aboutNetError-new.xhtml | hd
00000000  63 68 72 6f 6d 65 3a 2f  2f 62 72 6f 77 73 65 72  |chrome://browser|
00000010  2f 63 6f 6e 74 65 6e 74  2f 61 62 6f 75 74 4e 65  |/content/aboutNe|
00000020  74 45 72 72 6f 72 2d 6e  65 77 2e 78 68 74 6d 6c  |tError-new.xhtml|
00000030

Since the instructions need to be encoded, and since there are other instructions intertwined, the string thus doesn't appear clearly in the binary, so the test fails. FWIW, this is what it looks like in the binary:

04c23b30  ff ff ff 48 b9 65 77 2e  78 68 74 6d 6c 48 89 48  |...H.ew.xhtmlH.H|
04c23b40  28 48 b9 74 45 72 72 6f  72 2d 6e 48 89 48 20 48  |(H.tError-nH.H H|
04c23b50  b9 2f 61 62 6f 75 74 4e  65 48 89 48 18 48 b9 2f  |./aboutNeH.H.H./|
04c23b60  63 6f 6e 74 65 6e 74 48  89 48 10 48 b9 2f 62 72  |contentH.H.H./br|
04c23b70  6f 77 73 65 72 48 89 48  08 48 b9 63 68 72 6f 6d  |owserH.H.H.chrom|
04c23b80  65 3a 2f 48 89 08 83 bd  28 ff ff ff 00 0f 85 90  |e:/H....(.......|

So, split in 8 bytes chunks, with the first chunk last, and with 488948xx49b9 in between.
The browser_all_files_referenced.js test partly relies on finding chrome
and resource urls in the libxul binary, but with LTO, clang actually
replaces AssignASCII calls to inline copies using immediate values, like
this:

  movabsq $0x726573776f72622f, %rcx
  movq   %rcx, 0x8(%rax)
  movabsq $0x2f3a656d6f726863, %rcx
  movq   %rcx, (%rax)

Those immediate values are, respectively, "/browser" and "chrome:/".

Somehow, the aboutNetError-new url is the only one where that causes
problems, which is kind of surprising, in a sense. It's also in a
special position, being temporary until aboutNetError is actually
replaced and the new about:certerror rides the train. Chances are, if we
add an exception for aboutNetError-new in the
browser_all_files_referenced.js test itself, it would remain there after
the new about:certerror rides the train.

However, using the somehow circumvoluted Assign(NS_LITERAL_CSTRING())
construct, we can prevent clang from LTOing the string into pieces. And
there are better changes the code will go away when the new
about:certerror rides the train.
Attachment #9006510 - Attachment description: Bug 1473786 - Avoid the aboutNetError-new.xhtml url being smashed into pieced by compiler optimizations. r?felipe → Bug 1473786 - Avoid the aboutNetError-new.xhtml url being smashed into pieces by compiler optimizations. r?felipe
Comment on attachment 9006510 [details]
Bug 1473786 - Avoid the aboutNetError-new.xhtml url being smashed into pieces by compiler optimizations. r?felipe

:Felipe Gomes (needinfo me!) has approved the revision.
Attachment #9006510 - Flags: review+
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/105ab876a6a2
Avoid the aboutNetError-new.xhtml url being smashed into pieces by compiler optimizations. r=felipe
https://hg.mozilla.org/integration/mozilla-inbound/rev/a9caa2a0b5ed
Enable LTO on macOS builds. r=ted
https://hg.mozilla.org/mozilla-central/rev/105ab876a6a2
https://hg.mozilla.org/mozilla-central/rev/a9caa2a0b5ed
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Depends on: 1491233
This is in the 64 release notes as "Improved performance for Mac and Linux users, by enabling link time optimization (Clang LTO). (Clang LTO was enabled for Windows users in Firefox 63.)"
Alias: macOS-LTO
Blocks: 1530058
OS: Unspecified → macOS
You need to log in before you can comment on or make changes to this bug.