Closed Bug 1471583 Opened Last year Closed Last year

Categories

(Core :: Layout, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla63
Tracking Status
firefox63 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: ccoroiu, NeedInfo)

References

(Blocks 1 open bug)

Details

(Keywords: intermittent-failure, Whiteboard: [retriggered][stockwell fixed:product])

Attachments

(3 files, 3 obsolete files)

Filed by: ccoroiu [at] mozilla.com

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

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

https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/JQYn8rIbTMGnJdnBQZzSsg/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1

[task 2018-06-27T11:55:17.156Z] 11:55:17     INFO - TEST-START | /css/css-backgrounds/border-image-020.xht
[task 2018-06-27T11:55:17.163Z] 11:55:17     INFO - PID 5909 | 1530100517159	Marionette	INFO	Testing http://web-platform.test:8000/css/css-backgrounds/border-image-020.xht == http://web-platform.test:8000/css/reference/ref-filled-green-100px-square.xht
[task 2018-06-27T11:55:17.268Z] 11:55:17     INFO - PID 5909 | 1530100517264	Marionette	DEBUG	[4294967297] Waiting for page load of http://web-platform.test:8000/css/css-backgrounds/border-image-020.xht
[task 2018-06-27T11:55:17.270Z] 11:55:17     INFO - PID 5909 | ++DOMWINDOW == 96 (0xe3e98000) [pid = 6009] [serial = 96] [outer = 0xf7048380]
[task 2018-06-27T11:55:17.334Z] 11:55:17     INFO - PID 5909 | 1530100517333	Marionette	DEBUG	[4294967297] flushRendering false
[task 2018-06-27T11:55:17.342Z] 11:55:17     INFO - PID 5909 | 1530100517340	Marionette	INFO	Found 7296 pixels different, maximum difference per channel 255
[task 2018-06-27T11:55:17.402Z] 11:55:17     INFO - TEST-UNEXPECTED-FAIL | /css/css-backgrounds/border-image-020.xht | Testing http://web-platform.test:8000/css/css-backgrounds/border-image-020.xht == http://web-platform.test:8000/css/reference/ref-filled-green-100px-square.xht
[task 2018-06-27T11:55:17.403Z] 11:55:17     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC+ZpjcAAAO7ElEQVR4nO3ZS27jOgJA0Sy9d/561EDjIbb4ua4ik3MADsqWJYqW5IvU1z8AAKS+/vYEAAB+GoEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYH1Q3x9+Sr/x1oA8LcN/RJ9fX09jo9Mzg/lsFdrNfo9PX3+JifNd+Re+e71T6z7jd8l93K9/fPx30jONhxYM/+uuCj3zHxPq+/x2quY2t22nhN8iutNaP5mAusHm1k/gdXbXX+Bxe1cbwLrN1v61p8ulpH/lnr6r5PZ/4r8//dnP7Mzz9FtyuO9+szqfp7Wul7X0e9qdh3+ve+ncxy1M4/R63j2r12r38PueX93bZTfZXXtzJzXzDq/O/9X8/zUOa6efzmHp32OzOvVGs8eb/UaeDrmzHFGrhl+jzywRn4oRh9Iqw+N1TmtzHPnXFbX5Tuj5z3z+Xdz2Fnrd/uc3c+r+a4cf3Rfq/N4ms+feG1n7jMxsfJd7l47O/fJzjWz8z1/ek1H5jU7h09db7PH27k3n465cpynOOP3SQNrNLxGP78SWCvvzR5/9lzqdRndpgyskddn9rH6XX3qe5zxtwJr9zp6em/188V3WVw7O+e2s36719en1nTGznkV86lCaiXqVt7/93vVnPhZ/lpg7T7od44/us3IPEe3GXlv50YUWO+PVT7gBNbe9t+99ycDq7pfi/nM7nPnvWoOAktgMSYPrHfj3bYzx5md13fvjcxxZp4z+9hdl5Hze/XazOef3htd01fn+e54o/sZne/Ouq7M4dU83s3v6bXRddn9wasCY3bOu9fO7A/ru/v13WdHt595FszOYff+2JnD7L084unZObLt03uz2z6t83fX7+6c+Fn+2F+wRvY5c+POHn/kB2jm4TSzTb0ur7YbeW3m80/v7XxfxUN55/Oj3+Pq/mc/PxpYO8cd3UcdWCOKa2f1utkN1N3741NrOvNZgfW5fQms3+uPBdZK4PztwBrZbmeb1XmNbnNSYFUP5ZW1WF3XmwJrJxBmtiljYHXO9X2yM5eZ+fyJwCqvaYH1/H49J36WNLBevTd6gzzduCMPj9Xjz9zIIzfWyNxX1+U7dWCtht/Oa7ufebXd6rrOPtxH91+v28xrO3PfWcdPvzYyj/9ts3O/7kTA6jPmOzvPid05fOp6+8Sarxxz9Pgzc9pdH+40/e2+u2C+2+ap6me2G5nb6vH//7XZea6cy+66vPrMzLFm9/O07eixR+dWncN3+1rZ37vrZGUes6+9m1M596fPV3NZ2W7lenw6xuwzYmbbkfVavXdXrueVObz67OoajJ7H7HNkdw1Gt129516tJT/Xj/p2XazwWb/9Hvvt5w+M+1FPCw8/aLz6i8FvZw2AUT/mabHyZ2LgtdX/fvmprAUww5MCACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACD2HFhfX8ZJAwA4nsC6bQAAxxNYtw0A4HgC67YBABxPYN02AIDjCazbBgBwPIF12wAAjiewbhsAwPEE1m0DADiewLptAADHE1i3DQDgeALrtgEAHE9g3TYAgOMJrNsGAHC8IwPr6z8/awgsAPhdBJbAAgBiAktgAQAxgSWwAICYwBJYAEBMYAksACAmsAQWABATWAILAIgJLIEFAMQElsACAGICS2ABADGBJbAAgJjAElgAQExgCSwAICawBBYAEBNYAgsAiAksgQUAxASWwAIAYgJLYAEAMYElsACAmMASWABATGAJLAAgJrAEFgAQE1gCCwCICSyBBQDEBJbAAgBiAktgAQAxgSWwAICYwBJYAEBMYAksACAmsAQWABATWAILAIgJLIEFAMQElsACAGICS2ABADGBJbAAgJjAElgAQExgCSwAICawBBYAEBNYAgsAiAksgQUAxASWwAIAYgJLYAEAMYElsACAmMASWABATGAJLAAgJrAEFgAQE1gCCwCICSyBBQDEBJbAAgBiAktgAQAxgSWwAIDYkYFlCCwAuJnAum0AAMcTWLcNAOB4Auu2AQAcT2DdNgCA4wms2wYAcDyBddsAAI4nsG4bAMDxBNZtAwA4nsC6bQAAxxNYtw0A4HgC67YBABxPYN02AIDjCazbBgBwPIF12wAAjiewbhsAwPEE1m0DADiewLptAADHE1i3DQDgeALrtgEAHE9g3TYAgOMJrNsGAHA8gXXbAACOJ7BuGwDA8QTWbQMAOJ7Aum0AAMcTWLcNAOB4Auu2AQAcT2DdNgCA4wms2wYAcDyBddsAAI4nsG4bAMDxBNZtAwA4nsC6bQAAx/OLDQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQ+y+Y/Qub3yeF9QAAAABJRU5ErkJggg==
[task 2018-06-27T11:55:17.404Z] 11:55:17     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,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a9gAAOcTWMMGADifwBo2AMD5BNawAQDOJ7CGDQBwPoE1bACA8wmsYQMAnE9gDRsA4HwCa9gAAOcTWMMGADifv9gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAALH/AjxQ5zqObS1uAAAAAElFTkSuQmCC
[task 2018-06-27T11:55:17.405Z] 11:55:17     INFO - TEST-INFO took 242ms
[task 2018-06-27T11:55:17.462Z] 11:55:17     INFO - PID 5909 | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2018-06-27T11:55:17.462Z] 11:55:17     INFO - PID 5909 | [Child 6009, Main Thread] WARNING: NS_ENSURE_TRUE(maybeContext) failed: file /builds/worker/workspace/build/src/xpcom/threads/nsThread.cpp, line 794
[task 2018-06-27T11:55:17.499Z] 11:55:17     INFO - PID 5909 | 1530100517487	Marionette	INFO	Stopped listening on port 2828
[task 2018-06-27T11:55:17.749Z] 11:55:17     INFO - PID 5909 | --DOCSHELL 0xe7c75c00 == 0 [pid = 6009] [id = {eda0c5fd-196f-4b78-b3fb-48209f484946}]
[task 2018-06-27T11:55:17.751Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 95 (0xe248be00) [pid = 6009] [serial = 70] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/reference/background-size-028-ref.xht]
[task 2018-06-27T11:55:17.751Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 94 (0xe2489a00) [pid = 6009] [serial = 69] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/background-size-027.html]
[task 2018-06-27T11:55:17.753Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 93 (0xe2489400) [pid = 6009] [serial = 68] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/reference/background-size-027-ref.xht]
[task 2018-06-27T11:55:17.753Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 92 (0xe248ae00) [pid = 6009] [serial = 67] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/background-size-026.html]
[task 2018-06-27T11:55:17.755Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 91 (0xe248a400) [pid = 6009] [serial = 66] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/reference/background-size-026-ref.xht]
[task 2018-06-27T11:55:17.755Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 90 (0xe3e9c200) [pid = 6009] [serial = 65] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/background-size-025.html]
[task 2018-06-27T11:55:17.757Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 89 (0xf7071600) [pid = 6009] [serial = 64] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/reference/background-size-025-ref.xht]
[task 2018-06-27T11:55:17.760Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 88 (0xeaabdc00) [pid = 6009] [serial = 63] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/background-size-021.html]
[task 2018-06-27T11:55:17.760Z] 11:55:17     INFO - PID 5909 | --DOMWINDOW == 87 (0xe3e9c400) [pid = 6009] [serial = 62] [outer = (nil)] [url = http://web-platform.test:8000/css/css-backgrounds/reference/background-size-021-ref.html]
Assignee: nobody → ccoroiu
Seems somewhat unlikely. My patch deals with <img> invalidation, not any sort of border-image.

The testcase does have an <img>, but it's the only thing that actually gets painted correctly. Furthermore, the <img> in the test-case doesn't have any of the interesting attributes like sizes="", so it's actually not affected by my change.

So my patch is definitely not the root cause of this, though maybe it has uncovered an existing issue? I'm not sure. We do have a lot of other background/border related WPT tests intermittently failing though... :(
Flags: needinfo?(emilio)
I did more retriggers and unless there is something else going on, it does look like bug 1469000 is causing a lot of related regressions in wpt1 (including this bug).

with 50+ instances and no failures on many pushes prior, and then bug 1469000 lands and we have many failures, it is suspect:
https://treeherder.mozilla.org/#/jobs?repo=autoland&filter-searchStr=Linux%20debug%20Web%20platform%20tests%20with%20e10s%20test-linux32%2Fdebug-web-platform-tests-reftests-e10s-1%20W-e10s(Wr1)&fromchange=378b43fe1658&tochange=12a849d78301b32f4d800dfe50944fc6f4f810b4


Any issues that could be unrelated are:
* infra changes (stuff out of tree like aws machines we run on)
* builds - they are inconsistent and sometimes we clobber or don't

:emilio- it could be that these tests are being affected by other tests in the same browser session.  Can you look into this or help us determine a path for correcting these failures?
Flags: needinfo?(jmaher) → needinfo?(emilio)
This condition was effectively removed in bug 1469000 because I didn't think it
was necessary at all. But looks like either it is (but I don't understand why),
or it's wallpapering something else...

Looks like this was introduced in bug 624647 and there's no comment related to
why it is relevant.

In any case it's harmless, as we'd overinvalidate when it's hit.

Joel, my patch removed this condition, which to this point still looks useless to me. But it's definitely hit in those tests (because the images are not constrained). Could you give this patch a few retriggers and tell me if this fixes the issue?
Flags: needinfo?(emilio) → needinfo?(jmaher)
Attachment #8988986 - Flags: feedback?(jmaher)
Depends on: 1419854
Comment on attachment 8988986 [details] [diff] [review]
Preserve the behavior of bailing out from GetSourceToDestTransform if any direction of the intrinsic size matches the destination rect.

Review of attachment 8988986 [details] [diff] [review]:
-----------------------------------------------------------------

this doesn't seem to make things much better:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9933e871c7790691bec49be4727f5743dfb04431
Attachment #8988986 - Flags: feedback?(jmaher)
So I took a look at this, and this seems a problem with WPT's reftest harness I think.

I took a look with Pernosco and the last paint didn't have the image available yet as expected.

The relevant logic for WPT is testing/marionette/listener.js::reftestWait, and for reftests it is layout/tools/reftest/reftest-content.js.

There's something fishy since most CSS images don't block onload. I suspect IsMozAfterPaintPending, which is not just a getter[1] may have something to do with it, but not sure yet.

[1]: https://searchfox.org/mozilla-central/rev/1193ef6a61cb6e350460eb2e8468184d3cb0321d/layout/base/nsPresContext.cpp#146

I'll try to run the test under reftests and under WPT and see what's the difference that makes reftest.jsm wait properly.
Flags: needinfo?(emilio)
This sounds like the same underlying issue as what jgraham was hinting at in bug 1472434 comment 4, FWIW. (And bug 1381899 as well, possibly.)
See Also: → 1472434
Ok, so I tracked this down in Pernosco, and the logic for waiting in WPT is sound (yay!).

There's a deeper issue though (nay! :/).

So what's going on is that the reftest harness goes through all this trouble of waiting for MozAfterPaint and such until there are no more paints left, but there may be image decodes left.

That's supposed to be handled by the updateLayerTree() call in[1], which ends up in [2], and passes the SYNC_DECODE_IMAGES flag around.

But that doesn't cause already-painted but not-yet-invalidated parts of the page to run. So the parts of the page without an invalidation won't go through that codepath and thus won't sync-decode. In particular, the border-image isn't invalidated yet by the time we get there, so no nsCSSBorderImageRenderer gets created, no image gets sync-decoded... etc.

I'm not quite sure how this is supposed to work. The obvious thing to do would be to do an invalidation of the whole page, but that may wallpaper bugs. We could try to return true for isMozAfterPaintPending if there are pending image decodes...

Matt, how does the later sound? Any other ideas?

I don't yet know where to look at whether there are pending image decoding tasks, but I'll figure that out.

[1]: https://searchfox.org/mozilla-central/rev/28daa2806c89684b3dfa4f0b551db1d099dda7c2/testing/marionette/listener.js#1675
[2]: https://searchfox.org/mozilla-central/rev/28daa2806c89684b3dfa4f0b551db1d099dda7c2/layout/base/nsLayoutUtils.cpp#3550
Flags: needinfo?(emilio) → needinfo?(matt.woodrow)
So, I talked with Andrew and he was fine with the proposed solution.

A bit more history on this... This is the exact problem that bug 697230 / bug 695765 were trying to solve, though we reverted that again at some other point... Bug 695763 is also relevant.
See Also: → 697230, 695765, 695763
https://treeherder.mozilla.org/#/jobs?repo=try&revision=20cda5a47f876709f3326299e0e43cfc639d4482 is a very dumb attempt at this...

Not sure how it'll turn out just yet. It'd probably need a way to not expose DecodePool.h around, though maybe that's just fine.
Also, we probably need to also wait for image loads, ideally, I'd think, given I don't think there's anything that waits for any of the image loads...

Probably not too hard to do from the CSS image loader. Also it's way less likely to show up I'd guess given reftests are local. But still worth doing, probably in another bug, probably... I wonder why / when did we revert bug 697230.
Looks like it works, modulo other failures that are due to other patches on my queue. Joel, is there any chance you could give https://hg.mozilla.org/try/rev/fa8ed208b28047035de7b4dc8f36a402b673bae9 a try? Does it improve the situation here?
Flags: needinfo?(jmaher)
Well, the sooner I speak, the sooner the APZ tests and such start failing. Anyway, those are because I'm changing the existing isMozAfterPaintPending function, so I may have broken a few of those which rely on specific (pre-existing) semantics.

But hey, reftests seem green!
Duplicate of this bug: 1419854
(In reply to Emilio Cobos Álvarez (:emilio) from comment #10)
> Ok, so I tracked this down in Pernosco, and the logic for waiting in WPT is
> sound (yay!).
> 
> There's a deeper issue though (nay! :/).
> 
> So what's going on is that the reftest harness goes through all this trouble
> of waiting for MozAfterPaint and such until there are no more paints left,
> but there may be image decodes left.
> 
> That's supposed to be handled by the updateLayerTree() call in[1], which
> ends up in [2], and passes the SYNC_DECODE_IMAGES flag around.
> 
> But that doesn't cause already-painted but not-yet-invalidated parts of the
> page to run. So the parts of the page without an invalidation won't go
> through that codepath and thus won't sync-decode. In particular, the
> border-image isn't invalidated yet by the time we get there, so no
> nsCSSBorderImageRenderer gets created, no image gets sync-decoded... etc.
> 
> I'm not quite sure how this is supposed to work. The obvious thing to do
> would be to do an invalidation of the whole page, but that may wallpaper
> bugs. We could try to return true for isMozAfterPaintPending if there are
> pending image decodes...
> 
> Matt, how does the later sound? Any other ideas?
> 
> I don't yet know where to look at whether there are pending image decoding
> tasks, but I'll figure that out.
> 
> [1]:
> https://searchfox.org/mozilla-central/rev/
> 28daa2806c89684b3dfa4f0b551db1d099dda7c2/testing/marionette/listener.js#1675
> [2]:
> https://searchfox.org/mozilla-central/rev/
> 28daa2806c89684b3dfa4f0b551db1d099dda7c2/layout/base/nsLayoutUtils.cpp#3550

What do you mean by the run bit of 'parts of the page to run'? Do you mean we don't call nsDisplayBorder::Paint?

The general idea is that that all paints during reftests are for the whole screen (full display list, full layerization, full update to the compositor), and then we only copy a subset of the pixels into the reftest <canvas> (based on the rectangle passed to DoDrawWindow).

I'd expect the un-decoded (and un-invalidated) nsDisplayBorder to be created, and put into a layer, and we should be checking if it is valid by calling nsDisplayBorder::ComputeInvalidationRegion.

I'd expect that to return an invalidation, since ShouldInvalidateToSyncDecodeImages() should be returning true if the display item wants to paint an image, but hasn't yet done so successfully (that is, the rendering of the display item will change once its image is decoded). We're in a sync decode paint, so that condition should be true, and we'd add the bounds of the border item to the invalid area for the layer, and then call nsDisplayBorder::Paint later on.

It's possible that the current drawWindow call is only copying pixels for other areas, and won't copy pixels for the newly drawn border-image, but the invalidation should also have triggered a new MozAfterPaint, so I'd expect another call to drawWindow to copy the remaining changed pixels.

Triggering whole screen invalidations definitely hides other bugs, the partial updates are a good way to test our invalidation code and a lot of tests have been written with this in mind.
Flags: needinfo?(matt.woodrow)
So Matt helped me out in explaining how this should all work.

What's going on is the following:

 * In UpdateLayerTree(), which is supposed to sync-decode images, we end up skipping the whole paint because the display lists are identical.

 * Display lists are _not_ supposed to be identical, and should get invalidated in:

    https://searchfox.org/mozilla-central/rev/c579ce13ca7864c5df9711eda730ceb00501aed3/layout/painting/nsDisplayListInvalidation.h#203

   if the image is not ready before.

 * However mLastDrawResult is SUCCESS, because nsStyleImage::StartDecoding returns true, and thus frameReady is true:

    https://searchfox.org/mozilla-central/rev/c579ce13ca7864c5df9711eda730ceb00501aed3/layout/painting/nsImageRenderer.cpp#126

   (so we don't pick the NOT_READY path).

So at that point:

  mImage->IsComplete() -> false
  RasterImage::mHasBeenDecoded -> false
  frameComplete -> true

The frame seems right though, inspecting StartDecoding(), the surface has the right pixels. The following is from the refresh driver tick _before_ the UpdateLayerTree call:

(pernosco) bt 
#0  mozilla::image::RasterImage::RequestDecodeForSizeInternal (this=0x7f3d5aae22e0, aSize=..., aFlags=6) at /builds/worker/workspace/build/src/image/RasterImage.cpp:1183
#1  0x00007f3d5c6feba3 in mozilla::image::RasterImage::StartDecodingWithResult (this=<optimized out>, aFlags=<optimized out>) at /builds/worker/workspace/build/src/image/RasterImage.cpp:1137
#2  0x00007f3d5c705097 in imgRequestProxy::StartDecodingWithResult (this=0x5e05204fd100, aFlags=4) at /builds/worker/workspace/build/src/image/imgRequestProxy.cpp:592
#3  0x00007f3d5dcde582 in mozilla::nsImageRenderer::PrepareImage (this=this@entry=0x7fffdfebf960) at /builds/worker/workspace/build/src/layout/painting/nsImageRenderer.cpp:126
#4  0x00007f3d5dc950f4 in nsCSSBorderImageRenderer::CreateBorderImageRenderer
(pernosco) p result 
$95 = {mSurface = {mDrawableRef = {mFrame = [(mozilla::image::imgFrame *) 0x3fde75847020], mRef = {mStorage = "\340\060\201u\336?\000\000\000\300\204u\336?\000\000\220\001\000\000=\177\000\000\001\"\256Z=\177\000", mIsSome = 1 '\001'}}, mProvider = [(mozilla::image::ISurfaceProvider *) 0x0], mHaveSurface = true}, mMatchType = mozilla::image::MatchType::EXACT, mSuggestedSize = {<mozilla::gfx::BaseSize<int, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> >> = {{{width = 0, height = 0}, components = {0, 0}}}, <mozilla::gfx::UnknownUnits> = {<No data fields>}, <No data fields>}}
(pernosco) p result.mSurface.mDrawableRef.mFrame.mRawPtr->mRawSurface.mRawPtr 
$69 = (mozilla::gfx::SourceSurfaceVolatileData *) 0x3fde758130e0
[..]
(pernosco) p (unsigned char*) $69->mVBuf.mRawPtr->mBuf
$83 = (unsigned char *) 0x3fde7584c000 ""
(pernosco) p $83[0] 
$84 = 0 '\000'
(pernosco) p $83[1]
$85 = 128 '\200'
(pernosco) p $83[2]
$86 = 0 '\000'
(pernosco) p $83[3]
$87 = 255 '\377'

Yet the reftest screenshot doesn't show the green pixels at all! mLockedSurface.mRawData also looks fine.

Not sure what's up with that, whether the assumptions the display list code is doing about imagelib wrong, or the "identical display list" path via EndEmptyTransaction is wrong if we want to actually sync all our stuff over to the compositor?
Ok, so with a lot of help from Matt and Timothy I think I finally understand what's going on.

Timothy confirmed that the situation above is perfectly normal. Matt helped me move around all the FLB invalidation code and the compositor stuff.

I believe now that what's going on here is an invalidation bug. Basically, we're completely failing to invalidate display items that change as the new image becomes available.

Current understanding of what's going on:

 * We paint the image but it's not decoded yet, so we store a NOT_READY in the display item geometry, but it has the correct size so we move on.

 * We end up painting again, before the image decode notification arrives because, e.g., something inside changed. But now the image is decoded, so we paint and store SUCCESS in the image geometry. But we _don't_ invalidate the relevant area, so we never update the compositor.

 * We try to take a screenshot for reftests since we're not aware of more paints pending, and normally we rely on the sync decode images invalidation stuff to mark the frames dirty:

  https://searchfox.org/mozilla-central/rev/c579ce13ca7864c5df9711eda730ceb00501aed3/layout/painting/RetainedDisplayListBuilder.cpp#57

 * But in this case the frame is not invalidated, because we already drew with SUCCESS so that code assumes it's up-to-date.

I need to get a better grasp at the order in which the invalidation stuff is called, but I suspect we need to store the last draw result in the display item itself and invalidate if it's different from the geometry's display item. Does that sound right to you Matt?
Flags: needinfo?(matt.woodrow)
That all makes sense so far, but what happens to the image decode notification that is in the event queue?

My expectation is that should run, invalidate the border frame, and we'd start returning true from isMozzAfterPaintPending again. Then reftests should continue to wait for the next paint, and that one should repaint the border properly.

Is there a race here where we temporarily report no paints pending and reftests packs up and goes home?
Flags: needinfo?(matt.woodrow)
(In reply to Matt Woodrow (:mattwoodrow) from comment #20)
> That all makes sense so far, but what happens to the image decode
> notification that is in the event queue?
> 
> My expectation is that should run, invalidate the border frame, and we'd
> start returning true from isMozzAfterPaintPending again. Then reftests
> should continue to wait for the next paint, and that one should repaint the
> border properly.
> 
> Is there a race here where we temporarily report no paints pending and
> reftests packs up and goes home?

That is exactly right, we don't wait for the decoding tasks to notify, thus the patch mentioned in comment 14.

After talking with tn, probably the easiest patch would be to stop recording a successful draw for now, then trying to remove the StartDecoding stuff (probably in another bug) since it's not really useful if the image has been painted before being ready already.

Afterwards trying to figure out a better way to deal with pending decode requests than sync-decoding would be really nice, we could probably start making async decoding the default for drawWindow and make the reftests explicitly opt-in.

In any case, that's followup work I'd say.
there are still many failures in the wr1 job on linux debug:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d84cd6c317236dfae6ffe4fb40b90f03c4f9cd53&filter-searchStr=reftest%20%20e10s%20wr1

but none of them are this specific test.  Given that the fix is generic (at the layout level, not the test level), I am inclined to say this isn't helping a whole lot.  Maybe there are other cases for the failures in -002, -017, -018, and -019 tests which would them mean that -020 is fixed.
Flags: needinfo?(jmaher)
Yeah, I would've expected not recording a successful draw here to fix it, but there are still background-image related failures in:

 https://treeherder.mozilla.org/#/jobs?repo=try&revision=fcaff8fca519c7cde02f538c247f1dc2b35c6b94&selectedJob=187378519

I tried removing the StartDecoding call, which should also be green if the "mark frames without a successful draw dirty" stuff worked right, but that has even more orange:

 https://treeherder.mozilla.org/#/jobs?repo=try&revision=2fb7804a951e08093ea80b372c4e3dd221f4d0f3&selectedJob=187378185

So more debugging awaits.
I've tried to unsuccessfully reproduce the same kind of failures locally under
rr with this patch applied, so that's a good sign.

This should fix the case where we don't invalidate from AttemptPartialUpdate
while trying to sync-decode.

This is a clear part of the problem, though not sure yet if it'll fix all the
issues we see in these tests. In any case I want to investigate those
separately.
Comment on attachment 8991293 [details]
Bug 1471583: Don't record a successful draw result if the image is not complete yet. r=tnikkel

Timothy Nikkel (:tnikkel) has approved the revision.

https://phabricator.services.mozilla.com/D2068
Attachment #8991293 - Flags: review+
Pushed by emilio@crisal.io:
https://hg.mozilla.org/integration/mozilla-inbound/rev/9851707b13cb
Don't record a successful draw result if the image is not complete yet. r=tnikkel
Backed out changeset 9851707b13cb (bug 1471583) for Wr4 failures in multiple files e.g. css/CSS2/backgrounds/background-root-010.xht

Backout: https://hg.mozilla.org/integration/mozilla-inbound/rev/9235548deaff3dafab06626b8ebe909ee4bdca72

Failure push: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=9851707b13cbcc41a970d677eab3a32d320e81dd

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

task 2018-07-12T14:51:15.840Z] 14:51:15     INFO - TEST-START | /css/CSS2/backgrounds/background-root-010.xht
[task 2018-07-12T14:51:15.848Z] 14:51:15     INFO - PID 1288 | 1531407075837	Marionette	INFO	Testing http://web-platform.test:8000/css/CSS2/backgrounds/background-root-010.xht == http://web-platform.test:8000/css/CSS2/backgrounds/background-root-010-ref.xht
[task 2018-07-12T14:51:15.848Z] 14:51:15     INFO - PID 1288 | 1531407075841	Marionette	DEBUG	[4294967297] Waiting for page load of http://web-platform.test:8000/css/CSS2/backgrounds/background-root-010-ref.xht
[task 2018-07-12T14:51:15.885Z] 14:51:15     INFO - PID 1288 | 1531407075874	Marionette	DEBUG	[4294967297] flushRendering false
[task 2018-07-12T14:51:15.887Z] 14:51:15     INFO - PID 1288 | 1531407075883	Marionette	DEBUG	[4294967297] Waiting for page load of http://web-platform.test:8000/css/CSS2/backgrounds/background-root-010.xht
[task 2018-07-12T14:51:15.915Z] 14:51:15     INFO - PID 1288 | 1531407075910	Marionette	DEBUG	[4294967297] flushRendering true
[task 2018-07-12T14:51:15.923Z] 14:51:15     INFO - PID 1288 | 1531407075918	Marionette	INFO	Found 3570 pixels different, maximum difference per channel 255
[task 2018-07-12T14:51:15.973Z] 14:51:15     INFO - TEST-UNEXPECTED-FAIL | /css/CSS2/backgrounds/background-root-010.xht | Testing http://web-platform.test:8000/css/CSS2/backgrounds/background-root-010.xht == http://web-platform.test:8000/css/CSS2/backgrounds/background-root-010-ref.xht
[task 2018-07-12T14:51:15.974Z] 14:51:15     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,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
[task 2018-07-12T14:51:15.977Z] 14:51:15     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,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
[task 2018-07-12T14:51:15.977Z] 14:51:15     INFO - TEST-INFO took 114ms
[task 2018-07-12T14:51:15.999Z] 14:51:15     INFO - PID 1288 | 1531407075992	Marionette	INFO	Stopped listening on port 2828
[task 2018-07-12T14:51:16.467Z] 14:51:16     INFO - Browser exited with return code 0
[task 2018-07-12T14:51:16.470Z] 14:51:16  WARNING - u'runner_teardown': ()
[task 2018-07-12T14:51:16.486Z] 14:51:16     INFO - Setting up ssl
[task 2018-07-12T14:51:16.523Z] 14:51:16     INFO - certutil | 
[task 2018-07-12T14:51:16.543Z] 14:51:16     INFO - certutil | 
[task 2018-07-12T14:51:16.564Z] 14:51:16     INFO - certutil | 
[task 2018-07-12T14:51:16.564Z] 14:51:16     INFO - Certificate Nickname                                         Trust Attributes
[task 2018-07-12T14:51:16.565Z] 14:51:16     INFO -                                                              SSL,S/MIME,JAR/XPI
[task 2018-07-12T14:51:16.565Z] 14:51:16     INFO - 
[task 2018-07-12T14:51:16.565Z] 14:51:16     INFO - web-platform-tests                                           CT,, 
[task 2018-07-12T14:51:16.565Z] 14:51:16     INFO - 
[task 2018-07-12T14:51:16.613Z] 14:51:16     INFO - Application command: /builds/worker/workspace/build/application/firefox/firefox --marionette about:blank -profile /tmp/tmpK34RCy.mozrunner
Flags: needinfo?(emilio)
So I got a bit stuck debugging those... They repro rather easily with rr, and everything seems to happen as expected in a reftest I've been debugging today with my patch applied:

 * The invalidation region is correct.
 * We sync-decode and paint the images.
 * The transactions arrive in the correct order to the parent process, and the child process waits before returning from updateLayerTree() via WaitOnTransactionProcessed.

So I'm a bit out of my depth here...
(In reply to Emilio Cobos Álvarez (:emilio) from comment #30)
> So I got a bit stuck debugging those... They repro rather easily with rr,
> and everything seems to happen as expected in a reftest I've been debugging
> today with my patch applied:

https://pernos.co/debug/cttri8vVcetKzW28p212kA/index.html
Emilio, there are 2 other bugs depending on this one that have [stockwell disable-recommended].
Is there something you can do to fix it or we should go ahead and disable?
I got slightly stuck here, as in, not knowing where to look at.

Failures are easy to reproduce if you run the css backgrounds tests on rr chaos mode (or, see comment 32 for a pernosco recording, maybe talk to roc if you don't have access already). It's also easier to reproduce if you evict stuff from the image cache more often (with ChaosFeature::ImageCache) and with memory pressure notifications and such.

As far as my limited understanding of this goes, everything is happening as expected when https://phabricator.services.mozilla.com/D2068 is applied: UpdateLayerTree() ends up sync-decoding and drawing both images, the invalidation regions look fine (we invalidate the whole background / border area, etc...).

The OMTP code seems to be correctly buffering the messages and sending them before WaitOnTransactionProcessed...

Also, the fact that there are similar failures in WR in a couple other bugs make me really suspicious about the bug being in compositor / OMTP / FLB.

Matt, Timothy, is there any chance any of you could take a look (or know someone who could) to see if I've missed something? My next idea is just trying to switch off various bits (like OMTP, RDL, etc.) and do a bunch of retriggers to try to pinpoint something...

https://hg.mozilla.org/try/rev/311cdde6a7e8b39e61bb04a962ee224fad7b174b is a commit I've been using to repro this more easily, on top of the above phabricator revision. though it's not really required.
Flags: needinfo?(tnikkel)
Flags: needinfo?(matt.woodrow)
There were a few failures in the pernosco link in comment #32, but I looked at the last one, since it was the most visibly wrong (background-position-141.xht).

It looks like we get everything painted in the child process via a call to updateLayerTree which paints with the sync decode, and that sends the correct pixels to the compositor, and we notifiy the parent process that it can now snapshot.

Before the parent process can take the snapshot though, another paint happens in the child (from a vsync notification).

In this follow-up paint, we still think the image hasn't decoded (nsStyleImage::IsComplete returns false because we don't have the STATUS_FRAME_COMPLETE flag).

There's no sync decode flag this time (since it's a regular paint) so we just don't paint the blue image, and the red image underneath is now visible again. This layer update also gets sent to the compositor, and is received before the parent process requests a snapshot.

The parent process now requests the snapshot from the compositor, and gets the broken-didn't-sync-decode pixels from the vsync paint, and we fail the test.

When we do a sync decode, we probably need to also synchronously update the result of nsStyleImage::IsComplete, since it seems like the notification updating that is racing with the next paint (which is likely already in the event queue when the sync decode happens). I don't know the imglib notification code at all, so haven't tracked that bit down yet to confirm.

Andrew, does that sound possible?
Flags: needinfo?(matt.woodrow) → needinfo?(aosmond)
Roc pointed out that pernosco URLs let you link to specific moments in time, so attaching this:

https://pernos.co/debug/cttri8vVcetKzW28p212kA/index.html#{f:{m:[2820338,114869],t:[246,3013],f:{e:[2820338,114664],s:{a:88008786829312,b:218,o:587396678,f:'m',u:585790297}}}}

That's in the child process, main-thead when we're doing the extra paint (from vsync), and nsStyleImage::IsComplete returns false, even though we've previously painted the image fully with a sync decode.

I assume the notification to mark us as being decoded is probably in the event queue, should be fairly easy to track it down if anyone is interested.
I'd prefer to avoid sync notifying during painting. We removed it in bug 1311841. And I don't think we can notify when we are actually painting (as opposed to display list building) because then the invalidations that the observers do in response would be lost, right?

Instead, I propose a modification of Emilio's patch. If nsStyleImage::IsComplete is false then we don't record a successful draw but we still draw the image. (Emilio's patch doesn't draw the image if nsStyleImage::IsComplete is false.)
Flags: needinfo?(tnikkel)
This should handle all code that calls PrepareImage and records a ImgDrawResult I think.

I haven't tested it to check that it fixes the intermittent because I didn't get a setup that reproduced the intermittent.

Emilio could you push this to try or whatever to see if it works to fix the intermittent?
Attachment #8997266 - Flags: feedback?(emilio)
Comment on attachment 8997266 [details] [diff] [review]
draw the image but don't record success

Review of attachment 8997266 [details] [diff] [review]:
-----------------------------------------------------------------

I couldn't reproduce it locally anymore, yay!

Looks like this makes some CSS masking reftests permafail though:

  https://treeherder.mozilla.org/#/jobs?repo=try&revision=54406cbbdeca407d74d26f72e0b534960235d532

I can try to take a look if you don't get to it sooner.
Attachment #8997266 - Flags: feedback?(emilio)
Thanks.

I'm pretty sure those mask failures are because of this code

https://searchfox.org/mozilla-central/rev/3fdc491e118c5cdfbaf6e2d52f3466d2b27ad1de/layout/svg/nsSVGIntegrationUtils.cpp#582

Because we are using the ImgDrawResult for something other than just UpdateDrawResult; we are using it to determine if the image was drawn successfully and therefore how to draw the mask.

Not quite sure yet what to do. We really want to return two pieces of information: what to record in UpdateDrawResult and the actual ImgDrawResult, but that's really cumbersome.
That looks like it cares about whether the image was ever resolved, so probably could check for result != INCOMPLETE as well.
With attachment 8997266 [details] [diff] [review] there may be images that get drawn fully successfully but report INCOMPLETE status.

We could introduce another ImgDrawResult variant to represent that I suspect, but not sure it's worth the churn.

In any case the spec text that the comment under this condition is quoting is about non-resolvable images, and INCOMPLETE images are definitely resolvable.
Attachment #8988986 - Attachment is obsolete: true
Flags: needinfo?(emilio)
Attachment #8997894 - Flags: review?(dholbert)
Attachment #8997894 - Flags: feedback?(tnikkel)
comment 57 was pretty green on try :)
Comment on attachment 8997894 [details] [diff] [review]
Allow also INCOMPLETE images to go through CreateAndPaintMaskSurface.

Review of attachment 8997894 [details] [diff] [review]:
-----------------------------------------------------------------

> Subject: [PATCH] Incomplete.

(Looks like this needs a commit message)

::: layout/svg/nsSVGIntegrationUtils.cpp
@@ +579,5 @@
>                     aSC, aMaskFrames, maskSurfaceMatrix,
>                     aOffsetToUserSpace);
>  
> +  if (aParams.imgParams.result != ImgDrawResult::SUCCESS &&
> +      aParams.imgParams.result != ImgDrawResult::INCOMPLETE) {

Could you adjust the comment below this to make it clear why SUCCESS and INCOMPLETE are the specific two excluded values here?  (I think those are the values that indicate that everything was successful and, at worst, we're blocked on decoding.)

It looks like the comment below is asking whether the mask resource is "resolvable or not"; I guess this is the "not resolvable" scenario, right?  I'm not entirely sure why we'd only be checking for SUCCESS and INCOMPLETE to determine that...  From the documentation for this enum[1], it seems like NOT_READY and perhaps even TEMPORARY_ERROR might be in the same 'resolvable' bucket as INCOMPLETE.

[1] https://dxr.mozilla.org/mozilla-central/rev/4e56a2f51ad739ca52046723448f3129a58f1666/image/ImgDrawResult.h#16-47
Attachment #8997894 - Flags: review?(dholbert) → review-
Comment on attachment 8997894 [details] [diff] [review]
Allow also INCOMPLETE images to go through CreateAndPaintMaskSurface.

I'm fine with this, but in the case that we only have a partially decoded mask image do we want to draw the page using only a partially decoded mask image? It seems like this is a case where we want to either draw nothing or the full image (like background images).

Echoing dholbert, if we go this route then everything but BAD_IMAGE and BAD_ARGS should probably be treated the same way? I'm not too familiar with mask images though.
Attachment #8997894 - Flags: feedback?(tnikkel)
See Also: → 1426587
Sorry, today I just went back to this because I got a patch backed out that introduced a test that happened to fail because of this bug.

WDYT about this Timothy?
Attachment #8997894 - Attachment is obsolete: true
Attachment #9001975 - Flags: review?(tnikkel)
(In reply to Emilio Cobos Álvarez (:emilio) from comment #63)
> Created attachment 9001975 [details] [diff] [review]
> With a way to distinguish INCOMPLETE from the 'drawed successfully but the
> image was not complete'
> 
> Sorry, today I just went back to this because I got a patch backed out that
> introduced a test that happened to fail because of this bug.
> 
> WDYT about this Timothy?

(This would apply on top of your other patch, and should probably be squashed into it).
It looks fine on try, fwiw.
Comment on attachment 9001975 [details] [diff] [review]
With a way to distinguish INCOMPLETE from the 'drawed successfully but the image was not complete'

Review of attachment 9001975 [details] [diff] [review]:
-----------------------------------------------------------------

There are about a half dozen other checks of equality with SUCCESS that I think also need to accept SUCCESS_NOT_COMPLETE. In nsDisplayListInvalidation.h, nsImageRenderer.h, nsDisplayList.cpp, nsCSSRendering.cpp, nsImageFrame.cpp, nsFloatManager.cpp, nsLayoutUtils.cpp, CanvasRenderingContext2D.cpp. The ones that happen in image/ should be fine because imagelib can't produce the SUCCESS_NOT_COMPLETE value.

::: image/ImgDrawResult.h
@@ +74,5 @@
>   */
>  inline ImgDrawResult
>  operator&(const ImgDrawResult aLeft, const ImgDrawResult aRight)
>  {
>    if (MOZ_LIKELY(aLeft == ImgDrawResult::SUCCESS)) {

I think you need to check for SUCCESS_NOT_COMPLETE here too otherwise SUCCESS_NOT_COMPLETE & (some error) will be SUCCESS_NOT_COMPLETE.
Attachment #9001975 - Flags: review?(tnikkel)
(In reply to Timothy Nikkel (:tnikkel) from comment #66)
> Comment on attachment 9001975 [details] [diff] [review]
> With a way to distinguish INCOMPLETE from the 'drawed successfully but the
> image was not complete'
> 
> Review of attachment 9001975 [details] [diff] [review]:
> -----------------------------------------------------------------

So, just to ensure we're on the same page:

> nsDisplayListInvalidation.h

This one is the one that _explicitly_ doesn't need it, right? This is the whole point of this bug. If we treated this as a success result we'd end up not invalidating on sync-decode, which would end up causing the intermittents we're fixing.

> nsImageRenderer.h

This one I did audit, and mPrepareResult is not based on imagelib or anything else at all (which is kind of a weird usage of the result, btw). So shouldn't need to check it.

I can make an incomplete image store SUCCESS_NOT_COMPLETE instead of this 'treat as complete' we do for sync-decoding / frameComplete, then check it there and in nsCSSRendering, etc. But I don't think it's necessarily better than keeping this value's usage to the minimum, and the behavior should be the same.

> nsDisplayList.cpp

This one I agree it should be changed, I missed this while searching.

> nsCSSRendering.cpp

This one I also audited, and this assertion only changes the value that comes from PrepareImage (i.e. nsImageRenderer.h). So only needs tweak if we change nsImageRenderer as well.

> nsImageFrame.cpp

This one I didn't do because it looked just as a perf tweak, but I agree it can be checked, will do.

> nsFloatManager.cpp

This one I did audit as well, and DrawShapeImage can't generate SUCCESS_NOT_COMPLETE (since it's not the display list stuff it doesn't really matter, and it goes through nsLayoutUtils::DrawSingleImage which can't return the new value). I could change the check just for robustness if you think it's better, or change it so that it returns SUCCESS_NOT_COMPLETE for consistency with other Draw() stuff.

> nsLayoutUtils.cpp

Same, DrawImageInternal doesn't really / cannot really generate SUCCESS_NOT_COMPLETE. Again, doesn't hurt, but given those callers don't have an nsStyleImage handy I think it's clearer if they don't handle it.

> CanvasRenderingContext2D.cpp

That comes directly from imagelib, so shouldn't need to check it.

> The ones that happen in image/ should be fine
> because imagelib can't produce the SUCCESS_NOT_COMPLETE value.

Timothy, do you agree with the above? Should I just fix your comment below and change the checks in nsDisplayList.cpp nsImageFrame.cpp?

> ::: image/ImgDrawResult.h
> @@ +74,5 @@
> >   */
> >  inline ImgDrawResult
> >  operator&(const ImgDrawResult aLeft, const ImgDrawResult aRight)
> >  {
> >    if (MOZ_LIKELY(aLeft == ImgDrawResult::SUCCESS)) {
> 
> I think you need to check for SUCCESS_NOT_COMPLETE here too otherwise
> SUCCESS_NOT_COMPLETE & (some error) will be SUCCESS_NOT_COMPLETE.

True, will change. I guess I should really do it in an else clause, so that SUCCESS_NOT_COMPLETE & SUCCESS doesn't return SUCCESS.
Flags: needinfo?(tnikkel)
(In reply to Emilio Cobos Álvarez (:emilio) from comment #67)
<snip>
> Timothy, do you agree with the above? Should I just fix your comment below
> and change the checks in nsDisplayList.cpp nsImageFrame.cpp?

Ah yes, I think you are correct on all accounts. I just did a quick search and didn't put as much thought into it as you did. Thanks.
Flags: needinfo?(tnikkel)
The nsImageFrame caller doesn't need to handle the new value either, since it uses drawSingleImage directly.
Attachment #9001975 - Attachment is obsolete: true
Attachment #9002202 - Flags: review?(tnikkel)
Attachment #9002202 - Flags: review?(tnikkel) → review+
Timothy, can we land attachment 8997266 [details] [diff] [review]? I can stamp it, but maybe you want someone else to review it?
Flags: needinfo?(tnikkel)
Flags: needinfo?(tnikkel)
Attachment #8997266 - Flags: review?(matt.woodrow)
Attachment #8997266 - Flags: review?(matt.woodrow) → review+
This bug has failed 42 times in the last 7 days. Failures occur on linux 32 and 64 platforms on asan and debug build types.

Log:
TEST-PASS | /css/css-backgrounds/border-image-019.xht | took 75ms
[task 2018-08-22T01:59:59.202Z] 01:59:59     INFO - TEST-START | /css/css-backgrounds/border-image-020.xht
[task 2018-08-22T01:59:59.203Z] 01:59:59     INFO - PID 6917 | 1534903199197	Marionette	INFO	Testing http://web-platform.test:8000/css/css-backgrounds/border-image-020.xht == http://web-platform.test:8000/css/reference/ref-filled-green-100px-square.xht
[task 2018-08-22T01:59:59.279Z] 01:59:59     INFO - PID 6917 | 1534903199271	Marionette	INFO	Found 7296 pixels different, maximum difference per channel 255
[task 2018-08-22T01:59:59.328Z] 01:59:59     INFO - TEST-UNEXPECTED-FAIL | /css/css-backgrounds/border-image-020.xht | Testing http://web-platform.test:8000/css/css-backgrounds/border-image-020.xht == http://web-platform.test:8000/css/reference/ref-filled-green-100px-square.xht
[task 2018-08-22T01:59:59.328Z] 01:59:59     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC+ZpjcAAAO7ElEQVR4nO3ZS27jOgJA0Sy9d/561EDjIbb4ua4ik3MADsqWJYqW5IvU1z8AAKS+/vYEAAB+GoEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYH1Q3x9+Sr/x1oA8LcN/RJ9fX09jo9Mzg/lsFdrNfo9PX3+JifNd+Re+e71T6z7jd8l93K9/fPx30jONhxYM/+uuCj3zHxPq+/x2quY2t22nhN8iutNaP5mAusHm1k/gdXbXX+Bxe1cbwLrN1v61p8ulpH/lnr6r5PZ/4r8//dnP7Mzz9FtyuO9+szqfp7Wul7X0e9qdh3+ve+ncxy1M4/R63j2r12r38PueX93bZTfZXXtzJzXzDq/O/9X8/zUOa6efzmHp32OzOvVGs8eb/UaeDrmzHFGrhl+jzywRn4oRh9Iqw+N1TmtzHPnXFbX5Tuj5z3z+Xdz2Fnrd/uc3c+r+a4cf3Rfq/N4ms+feG1n7jMxsfJd7l47O/fJzjWz8z1/ek1H5jU7h09db7PH27k3n465cpynOOP3SQNrNLxGP78SWCvvzR5/9lzqdRndpgyskddn9rH6XX3qe5zxtwJr9zp6em/188V3WVw7O+e2s36719en1nTGznkV86lCaiXqVt7/93vVnPhZ/lpg7T7od44/us3IPEe3GXlv50YUWO+PVT7gBNbe9t+99ycDq7pfi/nM7nPnvWoOAktgMSYPrHfj3bYzx5md13fvjcxxZp4z+9hdl5Hze/XazOef3htd01fn+e54o/sZne/Ouq7M4dU83s3v6bXRddn9wasCY3bOu9fO7A/ru/v13WdHt595FszOYff+2JnD7L084unZObLt03uz2z6t83fX7+6c+Fn+2F+wRvY5c+POHn/kB2jm4TSzTb0ur7YbeW3m80/v7XxfxUN55/Oj3+Pq/mc/PxpYO8cd3UcdWCOKa2f1utkN1N3741NrOvNZgfW5fQms3+uPBdZK4PztwBrZbmeb1XmNbnNSYFUP5ZW1WF3XmwJrJxBmtiljYHXO9X2yM5eZ+fyJwCqvaYH1/H49J36WNLBevTd6gzzduCMPj9Xjz9zIIzfWyNxX1+U7dWCtht/Oa7ufebXd6rrOPtxH91+v28xrO3PfWcdPvzYyj/9ts3O/7kTA6jPmOzvPid05fOp6+8Sarxxz9Pgzc9pdH+40/e2+u2C+2+ap6me2G5nb6vH//7XZea6cy+66vPrMzLFm9/O07eixR+dWncN3+1rZ37vrZGUes6+9m1M596fPV3NZ2W7lenw6xuwzYmbbkfVavXdXrueVObz67OoajJ7H7HNkdw1Gt129516tJT/Xj/p2XazwWb/9Hvvt5w+M+1FPCw8/aLz6i8FvZw2AUT/mabHyZ2LgtdX/fvmprAUww5MCACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACD2HFhfX8ZJAwA4nsC6bQAAxxNYtw0A4HgC67YBABxPYN02AIDjCazbBgBwPIF12wAAjiewbhsAwPEE1m0DADiewLptAADHE1i3DQDgeALrtgEAHE9g3TYAgOMJrNsGAHC8IwPr6z8/awgsAPhdBJbAAgBiAktgAQAxgSWwAICYwBJYAEBMYAksACAmsAQWABATWAILAIgJLIEFAMQElsACAGICS2ABADGBJbAAgJjAElgAQExgCSwAICawBBYAEBNYAgsAiAksgQUAxASWwAIAYgJLYAEAMYElsACAmMASWABATGAJLAAgJrAEFgAQE1gCCwCICSyBBQDEBJbAAgBiAktgAQAxgSWwAICYwBJYAEBMYAksACAmsAQWABATWAILAIgJLIEFAMQElsACAGICS2ABADGBJbAAgJjAElgAQExgCSwAICawBBYAEBNYAgsAiAksgQUAxASWwAIAYgJLYAEAMYElsACAmMASWABATGAJLAAgJrAEFgAQE1gCCwCICSyBBQDEBJbAAgBiAktgAQAxgSWwAIDYkYFlCCwAuJnAum0AAMcTWLcNAOB4Auu2AQAcT2DdNgCA4wms2wYAcDyBddsAAI4nsG4bAMDxBNZtAwA4nsC6bQAAxxNYtw0A4HgC67YBABxPYN02AIDjCazbBgBwPIF12wAAjiewbhsAwPEE1m0DADiewLptAADHE1i3DQDgeALrtgEAHE9g3TYAgOMJrNsGAHA8gXXbAACOJ7BuGwDA8QTWbQMAOJ7Aum0AAMcTWLcNAOB4Auu2AQAcT2DdNgCA4wms2wYAcDyBddsAAI4nsG4bAMDxBNZtAwA4nsC6bQAAx/OLDQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQ+y+Y/Qub3yeF9QAAAABJRU5ErkJggg==
[task 2018-08-22T01:59:59.329Z] 01:59:59     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,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a9gAAOcTWMMGADifwBo2AMD5BNawAQDOJ7CGDQBwPoE1bACA8wmsYQMAnE9gDRsA4HwCa9gAAOcTWMMGADifv9gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAADGBBQAQE1gAALH/AjxQ5zqObS1uAAAAAElFTkSuQmCC
[task 2018-08-22T01:59:59.330Z] 01:59:59     INFO - TEST-INFO took 123ms
[task 2018-08-22T01:59:59.367Z] 01:59:59     INFO - PID 6917 | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2018-08-22T01:59:59.395Z] 01:59:59     INFO - PID 6917 | 1534903199391	Marionette	INFO	Stopped listening on port 2828
[task 2018-08-22T02:00:00.694Z] 02:00:00     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:00.694Z] 02:00:00     INFO - PID 6917 | Suppressions used:
[task 2018-08-22T02:00:00.694Z] 02:00:00     INFO - PID 6917 |   count      bytes template
[task 2018-08-22T02:00:00.694Z] 02:00:00     INFO - PID 6917 |     620      19800 nsComponentManagerImpl
[task 2018-08-22T02:00:00.694Z] 02:00:00     INFO - PID 6917 |       2        416 mozJSComponentLoader::LoadModule
[task 2018-08-22T02:00:00.694Z] 02:00:00     INFO - PID 6917 |       2        288 libfontconfig.so
[task 2018-08-22T02:00:00.695Z] 02:00:00     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 | Suppressions used:
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 |   count      bytes template
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 |     620      19800 nsComponentManagerImpl
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 |       2        416 mozJSComponentLoader::LoadModule
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 |     611      17713 libfontconfig.so
[task 2018-08-22T02:00:00.864Z] 02:00:00     INFO - PID 6917 |       1         29 libglib-2.0.so
[task 2018-08-22T02:00:00.866Z] 02:00:00     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:00.930Z] 02:00:00     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:00.931Z] 02:00:00     INFO - PID 6917 | Suppressions used:
[task 2018-08-22T02:00:00.932Z] 02:00:00     INFO - PID 6917 |   count      bytes template
[task 2018-08-22T02:00:00.933Z] 02:00:00     INFO - PID 6917 |     620      19800 nsComponentManagerImpl
[task 2018-08-22T02:00:00.936Z] 02:00:00     INFO - PID 6917 |       2        416 mozJSComponentLoader::LoadModule
[task 2018-08-22T02:00:00.937Z] 02:00:00     INFO - PID 6917 |     611      17713 libfontconfig.so
[task 2018-08-22T02:00:00.938Z] 02:00:00     INFO - PID 6917 |       1         29 libglib-2.0.so
[task 2018-08-22T02:00:00.939Z] 02:00:00     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:01.283Z] 02:00:01     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:01.284Z] 02:00:01     INFO - PID 6917 | Suppressions used:
[task 2018-08-22T02:00:01.285Z] 02:00:01     INFO - PID 6917 |   count      bytes template
[task 2018-08-22T02:00:01.287Z] 02:00:01     INFO - PID 6917 |     620      19800 nsComponentManagerImpl
[task 2018-08-22T02:00:01.287Z] 02:00:01     INFO - PID 6917 |       2        416 mozJSComponentLoader::LoadModule
[task 2018-08-22T02:00:01.287Z] 02:00:01     INFO - PID 6917 |     611      17713 libfontconfig.so
[task 2018-08-22T02:00:01.287Z] 02:00:01     INFO - PID 6917 |       1         29 libglib-2.0.so
[task 2018-08-22T02:00:01.287Z] 02:00:01     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:02.461Z] 02:00:02     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:02.463Z] 02:00:02     INFO - PID 6917 | Suppressions used:
[task 2018-08-22T02:00:02.463Z] 02:00:02     INFO - PID 6917 |   count      bytes template
[task 2018-08-22T02:00:02.464Z] 02:00:02     INFO - PID 6917 |     626      19992 nsComponentManagerImpl
[task 2018-08-22T02:00:02.465Z] 02:00:02     INFO - PID 6917 |      38       7904 mozJSComponentLoader::LoadModule
[task 2018-08-22T02:00:02.466Z] 02:00:02     INFO - PID 6917 |     611      17509 libfontconfig.so
[task 2018-08-22T02:00:02.466Z] 02:00:02     INFO - PID 6917 |       8        352 _PR_Getfd
[task 2018-08-22T02:00:02.467Z] 02:00:02     INFO - PID 6917 |       1         29 libglib-2.0.so
[task 2018-08-22T02:00:02.467Z] 02:00:02     INFO - PID 6917 | -----------------------------------------------------
[task 2018-08-22T02:00:02.637Z] 02:00:02     INFO - Browser exited with return code 0
[task 2018-08-22T02:00:02.638Z] 02:00:02  WARNING - u'runner_teardown': ()
[task 2018-08-22T02:00:02.639Z] 02:00:02     INFO - INFO | runtests.py | ASan using symbolizer at /builds/worker/workspace/build/application/firefox/llvm-symbolizer
[task 2018-08-22T02:00:02.647Z] 02:00:02     INFO - STDOUT: Setting up LSAN
[task 2018-08-22T02:00:02.651Z] 02:00:02     INFO - LSan enabled.
[task 2018-08-22T02:00:02.651Z] 02:00:02     INFO - LSan using suppression file /builds/worker/workspace/build/tests/web-platform/prefs/lsan_suppressions.txt
[task 2018-08-22T02:00:02.651Z] 02:00:02     INFO - INFO | runtests.py | ASan running in default memory configuration
[task 2018-08-22T02:00:02.667Z] 02:00:02     INFO - Setting up ssl
[task 2018-08-22T02:00:02.716Z] 02:00:02     INFO - certutil | 
[task 2018-08-22T02:00:02.772Z] 02:00:02     INFO - certutil | 
[task 2018-08-22T02:00:02.813Z] 02:00:02     INFO - certutil | 
[task 2018-08-22T02:00:02.813Z] 02:00:02     INFO - Certificate Nickname                                         Trust Attributes
[task 2018-08-22T02:00:02.814Z] 02:00:02     INFO -                                                              SSL,S/MIME,JAR/XPI
[task 2018-08-22T02:00:02.814Z] 02:00:02     INFO - 
[task 2018-08-22T02:00:02.814Z] 02:00:02     INFO - web-platform-tests                                           CT,, 
[task 2018-08-22T02:00:02.814Z] 02:00:02     INFO - 
[task 2018-08-22T02:00:02.830Z] 02:00:02     INFO - Application command: /builds/worker/workspace/build/application/firefox/firefox --marionette about:blank -profile /tmp/tmprULjPS.mozrunner
[task 2018-08-22T02:00:02.847Z] 02:00:02     INFO - Starting runner
[task 2018-08-22T02:00:08.568Z] 02:00:08     INFO - PID 7324 | 1534903208556	Marionette	INFO	Listening on port 2828
[task 2018-08-22T02:00:09.227Z] 02:00:09     INFO - TEST-START | /css/css-backgrounds/border-image-5.html

svisen: Can you please take a look at this bug?
Flags: needinfo?(svoisen)
Whiteboard: [retriggered][stockwell disable-recommended] → [retriggered][stockwell disable-recommended] [stockwell needswork]
Pushed by tnikkel@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5955f883a957
Don't record a successful image draw if the image isn't marked complete. r=mattwoodrow
https://hg.mozilla.org/integration/mozilla-inbound/rev/851b26405a34
Add a new ImgDrawResult variant to distinguish INCOMPLETE and 'fully drew an image which wasn't really complete'. r=tnikkel
https://hg.mozilla.org/mozilla-central/rev/5955f883a957
https://hg.mozilla.org/mozilla-central/rev/851b26405a34
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Flags: needinfo?(svoisen)
Whiteboard: [retriggered][stockwell disable-recommended] [stockwell needswork] → [retriggered][stockwell fixed:product]
You need to log in before you can comment on or make changes to this bug.