Closed Bug 975446 Opened 12 years ago Closed 12 years ago

Assertion failure: args[0].isObject(), at vm/SelfHosting.cpp:472 or Crash [@ js::intrinsic_UnsafeGetReservedSlot] with SIMD

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla31
Tracking Status
firefox30 --- affected

People

(Reporter: decoder, Assigned: nmatsakis)

Details

(Keywords: assertion, crash, testcase, Whiteboard: [jsbugmon:update])

Crash Data

Attachments

(2 files)

The following testcase asserts on mozilla-central revision 7010ab83a06e (run with --fuzzing-safe --ion-compile-try-catch): var float32x4 = SIMD.float32x4; var f = float32x4(11, 22, 33, 44); assertEq(f,1);
Looks like a null-deref: Program received signal SIGSEGV, Segmentation fault. js::intrinsic_UnsafeGetReservedSlot (cx=0x158b260, argc=<optimized out>, vp=0x15efb28) at js/src/vm/SelfHosting.cpp:475 475 args.rval().set(args[0].toObject().getReservedSlot(args[1].toPrivateUint32())); #0 js::intrinsic_UnsafeGetReservedSlot (cx=0x158b260, argc=<optimized out>, vp=0x15efb28) at js/src/vm/SelfHosting.cpp:475 #1 0x00000000007d8a72 in CallJSNative (args=..., native=0x79df60 <js::intrinsic_UnsafeGetReservedSlot(JSContext*, unsigned int, JS::Value*)>, cx=0x158b260) at js/src/jscntxtinlines.h:230 #2 js::Invoke (cx=0x158b260, args=..., construct=<optimized out>) at js/src/vm/Interpreter.cpp:476 #3 0x00000000007cc999 in Interpret (cx=0x158b260, state=...) at js/src/vm/Interpreter.cpp:2608 #4 0x00000000007d854e in js::RunScript (cx=0x158b260, state=...) at js/src/vm/Interpreter.cpp:423 #5 0x00000000007d8953 in RunScript (state=..., cx=0x158b260) at js/src/vm/Interpreter.cpp:390 #6 js::Invoke (cx=0x158b260, args=..., construct=<optimized out>) at js/src/vm/Interpreter.cpp:495 #7 0x00000000007d947b in js::Invoke (cx=0x158b260, thisv=..., fval=..., argc=0, argv=<optimized out>, rval=...) at js/src/vm/Interpreter.cpp:532 rax 0x0 0 rip 0x79df71 <js::intrinsic_UnsafeGetReservedSlot(JSContext*, unsigned int, JS::Value*)+17> => 0x79df71 <js::intrinsic_UnsafeGetReservedSlot(JSContext*, unsigned int, JS::Value*)+17>: mov (%rax),%rcx
Crash Signature: [@ js::intrinsic_UnsafeGetReservedSlot]
Keywords: crash
Summary: Assertion failure: args[0].isObject(), at vm/SelfHosting.cpp:472 or Crash [@ js::intrinsic_UnsafeGetReservedSlot] → Assertion failure: args[0].isObject(), at vm/SelfHosting.cpp:472 or Crash [@ js::intrinsic_UnsafeGetReservedSlot] with SIMD
Whiteboard: [jsbugmon:update,bisect]
Niko, either you or Ivan should look into this, I think.
Flags: needinfo?(nmatsakis)
Whiteboard: [jsbugmon:update,bisect] → [jsbugmon:update]
JSBugMon: Bisection requested, result: === Tinderbox Build Bisection Results by autoBisect === The "good" changeset has the timestamp "20140220102129" and the hash "7a5cbe4dadf8". The "bad" changeset has the timestamp "20140220102430" and the hash "cc73b1f7a47d". Likely regression window: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=7a5cbe4dadf8&tochange=cc73b1f7a47d
Assignee: nobody → nmatsakis
Flags: needinfo?(nmatsakis)
Attached patch Bug975446.diffSplinter Review
Attachment #8393057 - Flags: review?(sphink)
Comment on attachment 8393057 [details] [diff] [review] Bug975446.diff Review of attachment 8393057 [details] [diff] [review]: ----------------------------------------------------------------- Hm, when I was reading through TypedObject.js, my first thought was that all those scary macros at the top ought to have type assertions in them. Maybe I'll wait to demand something like that until after the current dust settles.
Attachment #8393057 - Flags: review?(sphink) → review+
Oh, I see you just mentioned this. Yeah I was thinking the same and I think I mentioned it in another bug. Not sure why I didn't do that in the first place.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: