Summary: | dev-lang/spidermonkey-52.9.1_pre1 - Segmentation fault during testTypedArrays | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | tka <tka> |
Component: | Current packages | Assignee: | Mozilla Gentoo Team <mozilla> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | leio |
Priority: | Normal | Keywords: | TESTFAILURE |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log |
Description
tka
2018-07-24 13:10:00 UTC
GDB gives the following backtrace: testTypedArrays Thread 1 "jsapi-tests" received signal SIGSEGV, Segmentation fault. js::jit::AtomicOperations::loadSafeWhenRacy<signed char> (addr=<optimized out>) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jit/none/AtomicOperations-none.h:97 97 MOZ_CRASH(); (gdb) bt full #0 js::jit::AtomicOperations::loadSafeWhenRacy<signed char> (addr=<optimized out>) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jit/none/AtomicOperations-none.h:97 No locals. #1 0x0000555555b04b68 in js::jit::AtomicOperations::loadSafeWhenRacy<signed char> (addr=...) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jit/AtomicOperations.h:225 No locals. #2 (anonymous namespace)::TypedArrayObjectTemplate<signed char>::getIndex (obj=0x7fffe8600a28, index=0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/TypedArrayObject.cpp:995 tarray = <optimized out> tarray = <optimized out> #3 (anonymous namespace)::TypedArrayObjectTemplate<signed char>::getIndexValue (tarray=0x7fffe8600a28, index=0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/TypedArrayObject.cpp:1626 No locals. #4 js::TypedArrayObject::getElement (this=0x7fffe8600a28, index=0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/TypedArrayObject.cpp:2486 No locals. #5 0x0000555555a78ed5 in js::NativeObject::getDenseOrTypedArrayElement (this=<optimized out>, idx=<optimized out>) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/NativeObject-inl.h:242 No locals. #6 0x0000555555a72590 in NativeGetPropertyInline<(js::AllowGC)1> (vp=..., nameLookup=NotNameLookup, id=..., receiver=..., obj=..., cx=0x555555f055b0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/NativeObject.cpp:2078 done = <optimized out> proto = {<js::RootedBase<JSObject*>> = {<No data fields>}, stack = 0x0, prev = 0x0, ptr = 0xffffffffffffffe6} pobj = {<js::RootedBase<js::NativeObject*>> = {<No data fields>}, stack = 0x55555623e690, prev = 0x7fffffffdb10, ptr = 0x7fffe8600a28} shape = {<js::RootedBase<js::Shape*>> = {<No data fields>}, stack = 0x55555623e6a8, prev = 0x0, ptr = 0x1} pobj = <optimized out> shape = <optimized out> done = <optimized out> proto = <optimized out> #7 js::NativeGetProperty (cx=0x555555f055b0, obj=..., receiver=..., id=..., vp=...) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/NativeObject.cpp:2115 No locals. #8 0x00005555558c843d in js::GetProperty (vp=..., id=..., receiver=..., obj=..., cx=0x555555f055b0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/vm/NativeObject.h:1523 No locals. #9 js::GetElement (vp=..., index=0, receiver=..., obj=..., cx=0x555555f055b0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsobjinlines.h:200 id = {<js::RootedBase<jsid>> = {<No data fields>}, stack = 0x55555623e6c0, prev = 0x0, ptr = {asBits = 1}} id = <optimized out> #10 js::GetElement (vp=..., index=0, receiver=..., obj=..., cx=0x555555f055b0) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsobjinlines.h:208 receiverValue = {<js::RootedBase<JS::Value>> = {<js::MutableValueOperations<JS::Rooted<JS::Value> >> = {<js::ValueOperations<JS::Rooted<JS::Value> >> = {<No data fields>}, <No data fields>}, <No data fields>}, stack = 0x55555623e6c8, prev = 0x7fffffffdb30, ptr = {data = {asBits = 18446321860848126504, debugView = {payload47 = 140737091996200, tag = JSVAL_TAG_OBJECT}, s = {payload = {i32 = -396359128, u32 = 3898608168, why = 3898608168}}, asDouble = -nan(0xe7fffe8600a28), asPtr = 0xfffe7fffe8600a28, asWord = 18446321860848126504, asUIntPtr = 18446321860848126504}}} receiverValue = <optimized out> #11 JS_ForwardGetElementTo (cx=cx@entry=0x555555f055b0, obj=..., index=index@entry=0, receiver=..., vp=...) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsapi.cpp:2526 No locals. #12 0x00005555558c8692 in JS_GetElement (cx=cx@entry=0x555555f055b0, objArg=..., objArg@entry=..., index=index@entry=0, vp=..., vp@entry=...) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsapi.cpp:2560 No locals. #13 0x00005555556dab1b in cls_testTypedArrays::TestPlainTypedArray<&(JS_NewInt8Array(JSContext*, unsigned int)), signed char, &(JS_GetInt8ArrayData(JSObject*, bool*, JS::AutoCheckCannotGC const&))> (cx=0x555555f055b0, this=0x555555ee6f20 <cls_testTypedArrays_instance>) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsapi-tests/testTypedArrays.cpp:104 array = {<js::RootedBase<JSObject*>> = {<No data fields>}, stack = 0x55555623e690, prev = 0x0, ptr = 0x7fffe8600a28} proto = {<js::RootedBase<JSObject*>> = {<No data fields>}, stack = 0x55555623e690, prev = 0x7fffffffdaf0, ptr = 0x7fffe8580160} v = {<js::RootedBase<JS::Value>> = {<js::MutableValueOperations<JS::Rooted<JS::Value> >> = {<js::ValueOperations<JS::Rooted<JS::Value> >> = {<No data fields>}, <No data fields>}, <No data fields>}, stack = 0x55555623e6c8, prev = 0x0, ptr = {data = {asBits = 18444773748872577024, debugView = {payload47 = 0, tag = JSVAL_TAG_UNDEFINED}, s = {payload = {i32 = 0, u32 = 0, why = JS_ELEMENTS_HOLE}}, asDouble = -nan(0x9000000000000), asPtr = 0xfff9000000000000, asWord = 18444773748872577024, asUIntPtr = 18444773748872577024}}} array = <optimized out> proto = <optimized out> v = <optimized out> notArray = <optimized out> nogc = <optimized out> data = <optimized out> isShared = <optimized out> #14 cls_testTypedArrays::run (this=0x555555ee6f20 <cls_testTypedArrays_instance>, global=...) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsapi-tests/testTypedArrays.cpp:20 ok = true nbytes = 93825005774480 buffer = {<js::RootedBase<JSObject*>> = {<No data fields>}, stack = 0x55555623e690, prev = 0x7fffffffdaf0, ptr = 0x7fffe8580160} proto = {<js::RootedBase<JSObject*>> = {<No data fields>}, stack = 0x55555623e6c8, prev = 0x0, ptr = 0xfff9000000000000} #15 0x000055555562e29f in main (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/src/jsapi-tests/tests.cpp:128 name = 0x555555d4e880 "testTypedArrays" test = 0x555555ee6f20 <cls_testTypedArrays_instance> total = 27 failures = 0 filter = 0x0 Hmm.. So tests pass when jit is enabled but fail when disabled. I have a sneaking suspicion that spidermonkey:52 is a lot like firefox:52 in this respect, ie, jit isn't optional anymore... I'll do more research and adjust flags if that's the case. (In reply to tka from comment #1) > GDB gives the following backtrace: > > > testTypedArrays > > Thread 1 "jsapi-tests" received signal SIGSEGV, Segmentation fault. > js::jit::AtomicOperations::loadSafeWhenRacy<signed char> (addr=<optimized > out>) at > /var/tmp/portage/dev-lang/spidermonkey-52.9.1_pre1/work/mozjs-52.9.1pre1/js/ > src/jit/none/AtomicOperations-none.h:97 > 97 MOZ_CRASH(); Yeah that more or less confirms it -- MOZ_CRASH(); is the stub used for when things haven't been implemented. So, although technically we -could- port over the jit-less atomic operations from an ABI that doesn't have it (ie ia64 or ppc) into x86/amd64, I would prefer at this point to just force jit for all platforms that happen to have said support. Anyone have any objections? Well I removed optional jit in July and there's been no objections. Closing. |