Closed Bug 1210957 Opened 9 years ago Closed 6 years ago

ARM64: Segfault in function called from JSONParserBase::finishObject(). No JIT enabled.

Categories

(Core :: JavaScript Engine, defect)

ARM64
Unspecified
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jolesen, Unassigned)

References

Details

Build SpiderMonkey with --enable-simulator=arm64.
This reproduces on OS X and Linux, release or debug build.

$ dist/bin/js --no-baseline ../js/src/jit-test/tests/sunspider/check-string-tagcloud.js
Segmentation fault: 11

(lldb)
Process 76323 stopped
* thread #1: tid = 0x1863d8, 0x00000001003dbe45 js`JSObject::hasLazyGroup(this=0x0000000004900570) const + 21 at jsobj.h:156, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4900570)
    frame #0: 0x00000001003dbe45 js`JSObject::hasLazyGroup(this=0x0000000004900570) const + 21 at jsobj.h:156
   153 	     * might have a lazy group, use getGroup() below, otherwise group().
   154 	     */
   155 	    bool hasLazyGroup() const {
-> 156 	        return group_->lazy();
   157 	    }
   158 	
   159 	    JSCompartment* compartment() const { return group_->compartment(); }
(lldb) bt
* thread #1: tid = 0x1863d8, 0x00000001003dbe45 js`JSObject::hasLazyGroup(this=0x0000000004900570) const + 21 at jsobj.h:156, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4900570)
  * frame #0: 0x00000001003dbe45 js`JSObject::hasLazyGroup(this=0x0000000004900570) const + 21 at jsobj.h:156
    frame #1: 0x00000001003c864d js`JSObject::group(this=0x0000000004900570) const + 29 at jsobj.h:135
    frame #2: 0x00000001003a8b86 js`SameGroup(first=0x0000000105c671c0, second=0x0000000004900570) + 38 at ObjectGroup.cpp:963
    frame #3: 0x00000001003a8fdd js`js::CombinePlainObjectPropertyTypes(cx=0x0000000104845800, newObj=0x0000000004900570, compare=0x00000001048a3800, ncompare=21) + 93 at ObjectGroup.cpp:1022
(lldb) up 4
frame #4: 0x00000001003cac9c js`js::JSONParserBase::finishObject(this=0x00007fff5fbfb3d0, vp=JS::MutableHandleValue @ 0x00007fff5fbfaec0, properties=0x00000001048bad10) + 460 at JSONParser.cpp:596
   593 	
   594 	    if (!stack.empty() && stack.back().state == FinishArrayElement) {
   595 	        const ElementVector& elements = stack.back().elements();
-> 596 	        if (!CombinePlainObjectPropertyTypes(cx, obj, elements.begin(), elements.length()))
   597 	            return false;
   598 	    }
   599 	
(lldb) p obj
(JSObject *) $0 = 0x0000000004900570
(lldb) p *obj
error: Couldn't apply expression side effects : Couldn't dematerialize a result variable: couldn't read its memory
This does not currently reproduce, but Sunspider is now running as part of SM(arm64) in Treeherder, so we will know if it shows up again.
Status: NEW → RESOLVED
Closed: 6 years ago
Hardware: Unspecified → ARM64
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.