Closed Bug 893263 Opened 11 years ago Closed 11 years ago

Assertion failure: (ptrBits & 0x7) == 0, at dist/include/js/Value.h or Assertion failure: p.found(), at dist/include/js/HashTable.h, sometimes crashing with js::gc::MarkValueRootRange or FindReferences on the stack

Categories

(Core :: JavaScript Engine, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: gkw, Unassigned)

References

Details

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

Attachments

(5 files)

Attached file stack
function x() {}
evaluate("findReferences({})", {
    newContext: x
})

asserts js debug shell on m-c changeset 3433a021847b with --baseline-eager at Assertion failure: (ptrBits & 0x7) == 0, at dist/include/js/Value.h

I've got more testcases (reduced from the same large original testcase) coming up that assert differently and crash differently too.

Locking s-s because js::gc::MarkValueRootRange is on the stack.
Attached file second assert
Run also with --baseline-eager:

Assertion failure: p.found(), at dist/include/js/HashTable.h
I couldn't get the stack for this from gdb directly, I had to dump a corefile then inspect it for the stack.
Attached file 3rd crash
$ ./js-dbg-64-darwin-3433a021847b --baseline-eager testcase.js
js-dbg-64-darwin-3433a021847b(28540) malloc: *** error for object 0x101629c60: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
Attached file stack of 3rd testcase
Also had to dump a corefile for this.
Summary: Assertion failure: (ptrBits & 0x7) == 0, at dist/include/js/Value.h → Assertion failure: (ptrBits & 0x7) == 0, at dist/include/js/Value.h or Assertion failure: p.found(), at dist/include/js/HashTable.h, sometimes crashing with js::gc::MarkValueRootRange on the stack
Whiteboard: [jsbugmon:update,bisect] → [jsbugmon:update]
JSBugMon: Bisection requested, result:
autoBisect shows this is probably related to the following changeset:

The first bad revision is:
changeset:   http://hg.mozilla.org/mozilla-central/rev/b674f0e40c8e
user:        Brian Hackett
date:        Wed Jul 10 09:29:52 2013 -0600
summary:     Bug 885758 - Add ExclusiveContext for use by threads with exclusive access to their compartment, r=billm.

This iteration took 340.644 seconds to run.
Brian, is bug 885758 a likely regressor?
Blocks: 885758
Flags: needinfo?(bhackett1024)
Summary: Assertion failure: (ptrBits & 0x7) == 0, at dist/include/js/Value.h or Assertion failure: p.found(), at dist/include/js/HashTable.h, sometimes crashing with js::gc::MarkValueRootRange on the stack → Assertion failure: (ptrBits & 0x7) == 0, at dist/include/js/Value.h or Assertion failure: p.found(), at dist/include/js/HashTable.h, sometimes crashing with js::gc::MarkValueRootRange or FindReferences on the stack
Whiteboard: [jsbugmon:update] → [fuzzblocker][jsbugmon:update]
(In reply to Gary Kwong [:gkw] [:nth10sd] from comment #6)
> Brian, is bug 885758 a likely regressor?

No, it isn't.  I looked at this and findReferences() has an AutoArrayRooter whose contents change while it is in the process of being traced, causing all sorts of corruption.  findReferences() bugs are not s-s.
Group: core-security
Flags: needinfo?(bhackett1024)
Hoping Terrence might be able to look at this, as per IRC.
Flags: needinfo?(terrence)
I'm fixing the rooting for findReferences in bug 890048. We should wait until that lands and see if this still reproducess then.
Flags: needinfo?(terrence)
Depends on: 890048
Whiteboard: [fuzzblocker][jsbugmon:update] → [fuzzblocker] [jsbugmon:update,ignore]
JSBugMon: The testcase found in this bug no longer reproduces (tried revision 52f9e8ffe111).
Highly likely fixed by bug 890048. Let's double check.
Whiteboard: [fuzzblocker] [jsbugmon:update,ignore] → [fuzzblocker] [jsbugmon:bisectfix]
Whiteboard: [fuzzblocker] [jsbugmon:bisectfix] → [fuzzblocker] [jsbugmon:]
JSBugMon: Fix Bisection requested, result:
autoBisect shows this is probably related to the following changeset:

The first good revision is:
changeset:   http://hg.mozilla.org/mozilla-central/rev/411082e7dc9c
user:        Terrence Cole
date:        Wed Jul 24 16:32:21 2013 -0700
summary:     Bug 890048 - Fix rooting of the findReferences shell command; r=jimb,billm

This iteration took 346.581 seconds to run.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Whiteboard: [fuzzblocker] [jsbugmon:] → [fuzzblocker] [jsbugmon:update]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: