Closed Bug 1219363 Opened 9 years ago Closed 9 years ago

Crash [@ SortComparatorIntegerIds] or Assertion failure: (IdIsIndex(a, &indexA)), at jsiter.cpp or Assertion failure: (IdIsIndex(b, &indexB)), at jsiter.cpp

Categories

(Core :: JavaScript Engine, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla45
Tracking Status
firefox44 --- fixed
firefox45 --- fixed
b2g-v2.5 --- fixed

People

(Reporter: gkw, Assigned: jandem)

References

Details

(4 keywords, Whiteboard: [fuzzblocker][jsbugmon:update])

Crash Data

Attachments

(2 files)

x = []; x.a = 0; x.__proto__ = Object.defineProperty([, 1], 2, {}); for (var z in x) {}; asserts js debug shell on m-c changeset 4e164269cf88 with --fuzzing-safe --no-threads --no-ion --no-baseline at Assertion failure: (IdIsIndex(a, &indexA)), at jsiter.cpp Configure options: CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar AUTOCONF=/usr/local/Cellar/autoconf213/2.13/bin/autoconf213 sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin12.5.0 --enable-debug --disable-threadsafe --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests python -u ~/funfuzz/js/compileShell.py -b "--enable-debug --enable-more-deterministic" -r 4e164269cf88 === Treeherder Build Bisection Results by autoBisect === The "good" changeset has the timestamp "20151024102235" and the hash "430fb98d29000430e6566c8187413ecca0ff1c0d". The "bad" changeset has the timestamp "20151024120137" and the hash "45dd451ce4ed9ccf912f57ee019b237becfc28b8". Likely regression window: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=430fb98d29000430e6566c8187413ecca0ff1c0d&tochange=45dd451ce4ed9ccf912f57ee019b237becfc28b8 Jan, is bug 1175111 a likely regressor? Setting s-s because the testcase involves arrays and this can be scary.
Flags: needinfo?(jdemooij)
Attached file stack (deleted) —
(lldb) bt 5 * thread #1: tid = 0x26344b, 0x000000010054e67e js-dbg-64-dm-darwin-4e164269cf88`SortComparatorIntegerIds(a=<unavailable>, b=<unavailable>, lessOrEqualp=<unavailable>) + 94 at jsiter.cpp:142, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x000000010054e67e js-dbg-64-dm-darwin-4e164269cf88`SortComparatorIntegerIds(a=<unavailable>, b=<unavailable>, lessOrEqualp=<unavailable>) + 94 at jsiter.cpp:142 frame #1: 0x000000010056809b js-dbg-64-dm-darwin-4e164269cf88`bool js::MergeSort<jsid, bool (*)(jsid, jsid, bool*)>(array=0x00007fff5fbfe5a8, nelems=2, scratch=0x00007fff5fbfe288, c=(js-dbg-64-dm-darwin-4e164269cf88`SortComparatorIntegerIds(jsid, jsid, bool*) at jsiter.cpp:140))(jsid, jsid, bool*)) + 123 at Sort.h:100 frame #2: 0x000000010054e2bf js-dbg-64-dm-darwin-4e164269cf88`EnumerateNativeProperties(cx=0x0000000102b45400, pobj=<unavailable>, flags=1, ht=0x00007fff5fbfe480, props=0x00007fff5fbfe568) + 1999 at jsiter.cpp:206 frame #3: 0x0000000100532225 js-dbg-64-dm-darwin-4e164269cf88`Snapshot(cx=0x0000000102b45400, pobj_=<unavailable>, flags=1, props=0x00007fff5fbfe568) + 805 at jsiter.cpp:363 frame #4: 0x0000000100534bc6 js-dbg-64-dm-darwin-4e164269cf88`js::GetIterator(cx=0x0000000102b45400, obj=<unavailable>, flags=1, objp=<unavailable>) + 2134 at jsiter.cpp:862 (lldb)
During reduction, crashes involving SortComparatorIntegerIds sometimes showed up.
Crash Signature: [@ SortComparatorIntegerIds]
Keywords: crash
Summary: Assertion failure: (IdIsIndex(a, &indexA)), at jsiter.cpp → Crash [@ SortComparatorIntegerIds] or Assertion failure: (IdIsIndex(a, &indexA)), at jsiter.cpp
Attached patch Patch (deleted) — Splinter Review
Someone please take away my commit access. We can't sort the elements starting at index 0, because the Vector may contain other properties from objects on the prototype.
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)
Attachment #8680194 - Flags: review?(jorendorff)
Elevating this to [fuzzblocker] - I'm increasingly seeing (other variants of) this assertion that may or may not be related.
Whiteboard: [jsbugmon:update] → [fuzzblocker][jsbugmon:update]
Comment on attachment 8680194 [details] [diff] [review] Patch Review of attachment 8680194 [details] [diff] [review]: ----------------------------------------------------------------- The worst case here is you get elements in a shuffled order, right? If so, the bug can be opened. But as it's a recent regression, we should backport this to Aurora. Sorry I missed this on review. Ugh.
Attachment #8680194 - Flags: review?(jorendorff) → review+
This also causes: Assertion failure: (IdIsIndex(b, &indexB)), at jsiter.cpp which I've tested to be fixed by the patch.
Summary: Crash [@ SortComparatorIntegerIds] or Assertion failure: (IdIsIndex(a, &indexA)), at jsiter.cpp → Crash [@ SortComparatorIntegerIds] or Assertion failure: (IdIsIndex(a, &indexA)), at jsiter.cpp or Assertion failure: (IdIsIndex(b, &indexB)), at jsiter.cpp
https://hg.mozilla.org/integration/mozilla-inbound/rev/3a49120fe460 (In reply to Jason Orendorff [:jorendorff] from comment #5) > The worst case here is you get elements in a shuffled order, right? If so, > the bug can be opened. True.
Group: javascript-core-security
Comment on attachment 8680194 [details] [diff] [review] Patch Approval Request Comment [Feature/regressing bug #]: Bug 1175111. [User impact if declined]: Broken websites or debug builds. [Describe test coverage new/current, TreeHerder]: Fixes the test it adds. [Risks and why]: Very low risk, patch is quite trivial. [String/UUID change made/needed]: None.
Attachment #8680194 - Flags: approval-mozilla-aurora?
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
removing the b2g 2.5 flag since this commit has been reverted due to an incorrect merge, sorry for the confusion
Gary, could you please verify that this is fixed as expected on a latest Nightly build? Thanks in advance.
Flags: needinfo?(gary)
Comment on attachment 8680194 [details] [diff] [review] Patch Fixes a recent regression, let's uplift to Aurora44.
Attachment #8680194 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
(In reply to Ritu Kothari (:ritu) from comment #12) > Gary, could you please verify that this is fixed as expected on a latest > Nightly build? Thanks in advance. Erm, yes again? (usually we just wait for JSBugMon results) A test was also landed. autoBisect shows this is probably related to the following changeset: The first good revision is: changeset: https://hg.mozilla.org/mozilla-central/rev/3a49120fe460 user: Jan de Mooij date: Tue Nov 03 08:34:56 2015 +0100 summary: Bug 1219363 - Fix sort of indexed properties to not include properties already in the Vector. r=jorendorff
Status: RESOLVED → VERIFIED
Flags: needinfo?(gary)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: