Closed
Bug 1412034
Opened 8 years ago
Closed 8 years ago
Permanent false-positive PID 1047 | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141
Categories
(Core :: JavaScript Engine, defect, P5)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla61
| Tracking | Status | |
|---|---|---|
| firefox61 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Unassigned)
References
Details
(Keywords: intermittent-failure)
Filed by: archaeopteryx [at] coole-files.de
https://treeherder.mozilla.org/logviewer.html#?job_id=139748963&repo=mozilla-inbound
https://queue.taskcluster.net/v1/task/C-iKjbJFR62B1WdgHmJSQg/runs/0/artifacts/public/logs/live_backing.log
22:46:31 INFO - TEST-START | /streams/readable-byte-streams/detached-buffers.dedicatedworker.html
22:46:31 INFO - Setting pref javascript.options.streams (true)
22:46:31 INFO - PID 1047 | ++DOCSHELL 0x1299e3000 == 2 [pid = 1049] [id = {da9b0400-13a6-5343-b18c-4c01bad61e11}]
22:46:31 INFO - PID 1047 | ++DOMWINDOW == 5 (0x1299e3800) [pid = 1049] [serial = 5] [outer = 0x0]
22:46:31 INFO - PID 1047 | [Parent 1047, Main Thread] WARNING: [nsFrameLoader] ReallyStartLoadingInternal tried but couldn't show remote browser.
22:46:31 INFO - PID 1047 | : file /builds/worker/workspace/build/src/dom/base/nsFrameLoader.cpp, line 904
22:46:31 INFO - PID 1047 | ++DOMWINDOW == 6 (0x1299e4800) [pid = 1049] [serial = 6] [outer = 0x1299e3800]
22:46:31 INFO - PID 1047 | 1508996791897 Marionette DEBUG Register listener.js for window 2147483653
22:46:31 INFO - PID 1047 | ++DOMWINDOW == 7 (0x129c55800) [pid = 1049] [serial = 7] [outer = 0x1299e3800]
22:46:32 INFO - PID 1047 | ++DOCSHELL 0x129c66800 == 3 [pid = 1049] [id = {5e01840d-5e4a-c741-8668-52e4f34f201e}]
22:46:32 INFO - PID 1047 | ++DOMWINDOW == 8 (0x129c67000) [pid = 1049] [serial = 8] [outer = 0x0]
22:46:32 INFO - PID 1047 | ++DOMWINDOW == 9 (0x129c6d000) [pid = 1049] [serial = 9] [outer = 0x129c67000]
22:46:32 INFO - PID 1047 | 1508996792050 Marionette DEBUG Register listener.js for window 2147483656
22:46:32 INFO - PID 1047 | ++DOMWINDOW == 10 (0x129c71000) [pid = 1049] [serial = 10] [outer = 0x129c67000]
22:46:32 INFO - PID 1047 | [Child 1049, Main Thread] WARNING: attempt to modify an immutable nsStandardURL: file /builds/worker/workspace/build/src/netwerk/base/nsStandardURL.cpp, line 1827
22:46:32 INFO - PID 1047 | Unable to read VR Path Registry from /Users/cltbld/Library/Application Support/OpenVR/.openvr/openvrpaths.vrpath
22:46:33 INFO - PID 1047 | 2017-10-25 22:46:33.032 plugin-container[1050:23739] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x954f, name = 'com.apple.tsm.portname'
22:46:33 INFO - PID 1047 | See /usr/include/servers/bootstrap_defs.h for the error codes.
22:46:33 INFO - PID 1047 | [Child 1049, Main Thread] WARNING: NS_ENSURE_TRUE(!(err)) failed: file /builds/worker/workspace/build/src/toolkit/xre/nsXREDirProvider.cpp, line 1441
22:46:33 INFO - PID 1047 | [Child 1049, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /builds/worker/workspace/build/src/toolkit/xre/nsXREDirProvider.cpp, line 1579
22:46:33 INFO - PID 1047 | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141
| Comment hidden (Intermittent Failures Robot) |
Comment 2•8 years ago
|
||
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INCOMPLETE
Comment 3•8 years ago
|
||
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Updated•8 years ago
|
Blocks: streams-enable
Comment 7•8 years ago
|
||
Typical stack:
0 libxul.so!TransferArrayBuffer [Stream.cpp:6a1e8813b163 : 5141 + 0x18]
1 libxul.so!ReadableByteStreamControllerEnqueue [Stream.cpp:6a1e8813b163 : 4005 + 0xc]
2 libxul.so!ReadableByteStreamController_enqueue_impl [Stream.cpp:6a1e8813b163 : 3330 + 0x5]
3 libxul.so!ReadableByteStreamController_enqueue [CallNonGenericMethod.h:6a1e8813b163 : 100 + 0xc]
4 libxul.so!js::CallJSNative [jscntxtinlines.h:6a1e8813b163 : 291 + 0x6]
The spec at https://streams.spec.whatwg.org/#rbs-controller-enqueue has a step 6 that checks for a detached buffer. I see nothing in our code in ReadableByteStreamController_enqueue_impl that has that step. In fact, we seem to think that step 6 is the ReadableByteStreamControllerEnqueue call that's step 7 in the spec.
Flags: needinfo?(till)
Comment 8•8 years ago
|
||
I added that step here: https://github.com/whatwg/streams/pull/753 :)
Will be in the next version of my patch - real soon now!
Flags: needinfo?(till)
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Updated•8 years ago
|
Summary: Intermittent PID 1047 | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141 → Permanent false-positive PID 1047 | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141
| Comment hidden (Intermittent Failures Robot) |
Comment 17•8 years ago
|
||
For a permanent failure I see way too less OF entries here. Also the `false-positive` seems to not allow TH to display this bug as suggestion. Why we need that?
(In reply to Till Schneidereit [:till] from comment #8)
> I added that step here: https://github.com/whatwg/streams/pull/753 :)
>
> Will be in the next version of my patch - real soon now!
Till that was 3 months ago. Do you have an update for us?
Flags: needinfo?(till)
Summary: Permanent false-positive PID 1047 | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141 → Intermittent | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141
Comment 21•8 years ago
|
||
Reverting to false-positive given that this is actually marked as expected for now.
Summary: Intermittent | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141 → Permanent false-positive PID 1047 | Assertion failure: !JS_IsDetachedArrayBufferObject(buffer), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:5141
Comment 22•8 years ago
|
||
Till, I assume this will all go away with the landing of bug 1420076?
Comment 23•8 years ago
|
||
(In reply to Henrik Skupin (:whimboo) from comment #22)
> Till, I assume this will all go away with the landing of bug 1420076?
Correct.
Flags: needinfo?(till)
Comment 24•8 years ago
|
||
Welcome to our crappy world.
Having "intermittent" in the summary has nothing to do with it. For failures which follow the pattern TEST-UNEXPECTED-FAILURE | filename | words, treeherder will suggest every bug with the keyword intermittent-failure and filename in the summary. For failures which do not follow that pattern, it will suggest what it claims is the result of a full-line search, though after a switch to treeherder caching the results of its bug search a few years ago, it's more like a 125-character search. So it will suggest something like every bug which has the keyword intermittent-failure and includes all words in the first 125 characters of the failure line in the first 125 characters of the bug summary. Despite years of pleading, nobody who owns any of the various forms of assertion failure has any interest in doing anything about the fact that having a PID at the start of the failure message means that assertion failures are unsuggestible. So "Intermittent" or "Permanent false-positive", this bug would be suggested only for those cases where the assertion was hit on PID 1047.
This bug existed for those people who saw the assertion, remembered their training that they should search for the assertion failure (since intermittent assertion failures can sometimes be failing a correct assertion and thus the fault of the caller and thus should be filed against every test which hits them, but sometimes be an incorrect or excessively strict assertion and thus the fault of the assertion), and by seeing this bug with the summary starting permanent false-positive would be reminded that...
WPT is weird and dysfunctional in that when a new test is imported which crashes every time it is run, it is just imported with an annotation that it crashes, and that's it. Every green run of the chunk including that test will include the line about the assertion failure and the line about the test crashing, but nobody will see it until some other test after it in the same chunk fails and turns the run orange. Then someone will fail to realize that the crash isn't marked as unexpected, and will file an intermittent bug about the crash, or about the assertion, without seeing that it was expected and without seeing the other unexpected failure below. For a while, everyone will star the permanent expected crash as though it was the reason the run was orange, then eventually someone will realize it's expected and change the summary to "Permanent false-positive" and only some people will sometimes star it despite that.
A sensible harness would deal with that problem the way xpcshell does, by buffering its output and not outputting anything for expected cases, not costing us cash to store logs containing all those expected crash stacks, and instead file a bug about the expected crash, mark it expected, and have a verbose flag that could be added by anyone who was working on fixing it and wanted to see expected output in their try runs. But WPT isn't exactly sensible, so instead it tried to write a completely new Treeherder UI, the autoclassify UI, which would force people to star every line of failure output so that even if they were starring an expected failure as though it was unexpected they would still be forced to also star the actual failure below it.
Bonus fun: some of those bugs you marked as duplicates actually aren't, because not only does WPT cost us money by having excessively large logs filled with excess crash stacks, it also re-downloads the symbols to process the crashes every time, and some of those duplicates were actual failures which caused the test run to break as WPT tried to download symbols and failed to deal with a failure downloading them.
Comment 25•8 years ago
|
||
(In reply to Phil Ringnalda (:philor) from comment #24)
> Bonus fun: some of those bugs you marked as duplicates actually aren't,
> because not only does WPT cost us money by having excessively large logs
Would you mind to correct those wrongly duped bugs? Sorry for that.
> it also re-downloads the symbols to process the crashes every time
This is not a problem with wpt but all test jobs which make use of mozcrash. See bug 1228651.
Regarding everything else, thank you for the details. Lets see what we can make better for wpt-sync to get people informed about those crashes.
Comment 26•8 years ago
|
||
Fixed by disabling all the tests via bug 1420076.
Status: REOPENED → RESOLVED
Closed: 8 years ago → 8 years ago
status-firefox61:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in
before you can comment on or make changes to this bug.
Description
•