Closed
Bug 1293057
Opened 9 years ago
Closed 8 years ago
Intermittent WebCryptoAPI/generateKey/test_failures_AES-CTR.html,test_promise.html | application crashed [@ js::HeapSlot::post] after Assertion failure: preconditionForWriteBarrierPost(owner, kind, slot, target)
Categories
(Core :: JavaScript: GC, defect, P3)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla51
People
(Reporter: intermittent-bug-filer, Assigned: jonco)
References
Details
(Keywords: assertion, intermittent-failure)
Attachments
(1 file)
4.69 KB,
patch
|
till
:
review+
|
Details | Diff | Splinter Review |
Filed by: philringnalda [at] gmail.com
https://treeherder.mozilla.org/logviewer.html#?job_id=33466026&repo=mozilla-inbound
http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-inbound-linux-debug/1470579051/mozilla-inbound_ubuntu32_vm-debug_test-web-platform-tests-2-bm02-tests1-linux32-build71.txt.gz
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 2•9 years ago
|
||
Looks like that assertion caught something!
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
![]() |
||
Updated•9 years ago
|
Summary: Intermittent /WebCryptoAPI/generateKey/test_failures_AES-CTR.html | application crashed [@ js::HeapSlot::post] after Assertion failure: preconditionForWriteBarrierPost(owner, kind, slot, target) → Intermittent /WebCryptoAPI/generateKey/test_failures_AES-CTR.html,test_promise.html | application crashed [@ js::HeapSlot::post] after Assertion failure: preconditionForWriteBarrierPost(owner, kind, slot, target)
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 15•8 years ago
|
||
These crashes are coming from within the JS promise implementation:
05:45:42 INFO - Thread 0 (crashed)
05:45:42 INFO - 0 libxul.so!js::HeapSlot::post [Barrier.h:5a3b356bd3fb : 704 + 0x18]
05:45:42 INFO - eip = 0xb114e9b0 esp = 0xbfe5c300 ebp = 0xbfe5c318 ebx = 0xb60b3cb8
05:45:42 INFO - esi = 0x00000001 edi = 0x93cdede8 eax = 0x00000000 ecx = 0xb757d8ac
05:45:42 INFO - edx = 0x00000000 efl = 0x00210286
05:45:42 INFO - Found by: given as instruction pointer in context
05:45:42 INFO - 1 libxul.so!js::NativeObject::setDenseElement [NativeObject.h:5a3b356bd3fb : 1011 + 0xd]
05:45:42 INFO - eip = 0xb3dab553 esp = 0xbfe5c320 ebp = 0xbfe5c368 ebx = 0xb60b3cb8
05:45:42 INFO - esi = 0x00000001 edi = 0x93cdede8
05:45:42 INFO - Found by: call frame info
05:45:42 INFO - 2 libxul.so!js::EnqueuePromiseReactionJob [Promise.cpp:5a3b356bd3fb : 588 + 0x11]
05:45:42 INFO - eip = 0xb441158b esp = 0xbfe5c370 ebp = 0xbfe5c458 ebx = 0xb60b3cb8
05:45:42 INFO - esi = 0xbfe5c3b8 edi = 0xbfe5c3c8
05:45:42 INFO - Found by: call frame info
05:45:42 INFO - 3 libxul.so!intrinsic_EnqueuePromiseReactionJob [SelfHosting.cpp:5a3b356bd3fb : 1830 + 0x2b]
05:45:42 INFO - eip = 0xb4319ca2 esp = 0xbfe5c460 ebp = 0xbfe5c518 ebx = 0xb60b3cb8
05:45:42 INFO - esi = 0xbfe5c548 edi = 0xbfe5c4d4
05:45:42 INFO - Found by: call frame info
05:45:42 INFO - 4 0xa1deff76
05:45:42 INFO - eip = 0xa1deff76 esp = 0xbfe5c520 ebp = 0xa44e6c40 ebx = 0xbfe5c548
05:45:42 INFO - esi = 0xa44e6c70 edi = 0xaa426000
The assertion is probably caused by trying to write an objected that is marked gray into the slot of a black object.
Assignee | ||
Comment 16•8 years ago
|
||
As a first step, let's add compartment checking assertions to public promise API functions. These will assert when gray objects pass through the API and will move the assertion failures to somewhere that should make it more obvious what's going wrong.
Assignee: nobody → jcoppeard
Attachment #8784320 -
Flags: review?(till)
Comment 17•8 years ago
|
||
Comment on attachment 8784320 [details] [diff] [review]
check-promise-api
Review of attachment 8784320 [details] [diff] [review]:
-----------------------------------------------------------------
Makes sense. Thank you for investigating this - I'd be quite lost, I'm afraid.
Attachment #8784320 -
Flags: review?(till) → review+
Comment 18•8 years ago
|
||
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/dfc92970fcef
Add compartment checking assertions to promise API r=till
Assignee | ||
Updated•8 years ago
|
Keywords: leave-open
Comment 19•8 years ago
|
||
bugherder |
Comment hidden (Intermittent Failures Robot) |
Comment 21•8 years ago
|
||
Bulk assigning P3 to all open intermittent bugs without a priority set in Firefox components per bug 1298978.
Priority: -- → P3
Comment 22•8 years ago
|
||
Very oddly, the AES-CTR wpt crashes starred under this bug went away around the time of this:
https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=78b89cc4c3d3
Which says is very odd, but the trends on the different trees all point at it.
status-firefox50:
--- → affected
status-firefox51:
--- → fixed
Keywords: leave-open
Summary: Intermittent /WebCryptoAPI/generateKey/test_failures_AES-CTR.html,test_promise.html | application crashed [@ js::HeapSlot::post] after Assertion failure: preconditionForWriteBarrierPost(owner, kind, slot, target) → Intermittent WebCryptoAPI/generateKey/test_failures_AES-CTR.html,test_promise.html | application crashed [@ js::HeapSlot::post] after Assertion failure: preconditionForWriteBarrierPost(owner, kind, slot, target)
Target Milestone: --- → mozilla51
Comment 23•8 years ago
|
||
After taking a long hard look at OrangeFactor, it became apparent that *something* made this go away on trunk in late August. I was able to narrow it down to a push from Jon:
https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=78b89cc4c3d3
Terrence was unconvinced that any of those patches should have had any effect on this, but the evidence on Treeherder was pretty hard to ignore. I went ahead and pushed the patches one-by-one on top of Beta to Try to narrow it down. Turns out, bug 1296639 is what apparently made these failures go away.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a646ff97dbeefe65b623e1d54dcc376841a1d69a
Jon, does that make any sense? Are we just wallpapering or something? Regardless, can we uplift it to Beta to at least make the permafail go away? :)
Flags: needinfo?(jcoppeard)
Assignee | ||
Comment 24•8 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #23)
I guess that changing the timing or pattern of GCs has swept this under the carpet, because that surely doesn't fix the underlying issue. Nevertheless, I'll request an uplift.
Flags: needinfo?(jcoppeard)
Comment hidden (Intermittent Failures Robot) |
Comment 26•8 years ago
|
||
"Fixed" by bug 1296639.
Comment hidden (Intermittent Failures Robot) |
You need to log in
before you can comment on or make changes to this bug.
Description
•