Closed Bug 560098 Opened 14 years ago Closed 14 years ago

TM: "Assertion failure: invalid RECURSIVE_MISMATCH exit, at ../jsrecursion.cpp" or "Assertion failure: uint32(unboxed) <= 1, at ../jsbuiltins.cpp"

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: gkw, Assigned: luke)

References

Details

(Keywords: assertion, regression, testcase, Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file, 1 obsolete file)

Function("\
    for each(let w in [(5), false, Number, false]) {\
        (function f(zzzzzz) {\
            return zzzzzz.length == 0 ? 0 : zzzzzz[0] + f(zzzzzz.slice(1))\
        })([, [], [], w, , ])\
    }\
")()

asserts js debug shell on TM tip with -j at Assertion failure: invalid RECURSIVE_MISMATCH exit, at ../jsrecursion.cpp:142 while a variant:

Function("\
    for each(let w in [(void 0), (void 0), false, false, false, false, false, \
                       undefined, undefined, false, (void 0), undefined]) {\
        (function f(zzzzzz) {\
            return zzzzzz.length == 0 ? 0 : zzzzzz[0] + f(zzzzzz.slice(1))\
        })([w, , w, w, [], []])\
    }\
")()

asserts js debug shell on TM tip with -j at Assertion failure: uint32(unboxed) <= 1, at ../jsbuiltins.cpp:323
autoBisect shows that this is probably related to bug 552586:

The first bad revision is:
changeset:   39512:3f09b480b148
user:        Luke Wagner
date:        Thu Mar 18 12:12:06 2010 -0700
summary:     Bug 552586 - split JSVAL_SPECIAL into TT_SPECIAL and TT_VOID (r=dvander)
Blocks: 552586
OS: Linux → All
Hardware: x86 → All
Attached patch patch (obsolete) — Splinter Review
Ah, I should have remembered that we do a hole-to-undefined fixup which, before my patch, stayed TT_SPECIAL but now changes from TT_SPECIAL to TT_VOID.  The patch includes a more direct test case for the error.

Also, I think this patch removes the only use of the special (no pun intended) JSVAL_HOLE_FLAG/JSVAL_VOID invariant.  If the basic patch looks good to David, I think I can remove all the related comments and static asserts and number the special values contiguously.
Assignee: general → lw
Status: NEW → ASSIGNED
Attachment #439864 - Flags: review?(dvander)
oops
Attachment #439864 - Attachment is obsolete: true
Attachment #439865 - Flags: review?(dvander)
Attachment #439864 - Flags: review?(dvander)
Attachment #439865 - Flags: review?(dvander) → review+
http://hg.mozilla.org/tracemonkey/rev/1f9e21e2fd2b
Whiteboard: fixed-in-tracemonkey
http://hg.mozilla.org/mozilla-central/rev/1f9e21e2fd2b
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
A testcase for this bug was automatically identified at js/src/jit-test/tests/basic/testBug560098.js.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: