Closed Bug 1133143 Opened 11 years ago Closed 10 years ago

Crash [@ js::jit::AssemblerBufferWithConstantPools] involving oomAfterAllocations

Categories

(Core :: JavaScript Engine: JIT, defect)

x86
macOS
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox38 --- affected

People

(Reporter: gkw, Unassigned)

References

Details

(Keywords: crash, regression, testcase, Whiteboard: [jsbugmon:])

Crash Data

Attachments

(1 file)

try { f() } catch (e) { +e } try { Function(" \ for (var j = 0; j < 9; ++j) { \ try { \ undefined() \ } catch (e) { \ +e \ } \ } \ oomAfterAllocations(27); \ neuter(x, ""); \ ")() } catch (e) { +e } crashes js debug shell on m-c changeset 81f979b17fbd with --fuzzing-safe --no-threads --ion-eager at js::jit::AssemblerBufferWithConstantPools. Debug configure options: LD=ld CROSS_COMPILE=1 CC="clang -Qunused-arguments -msse2 -mfpmath=sse -arch i386" RANLIB=ranlib CXX="clang++ -Qunused-arguments -msse2 -mfpmath=sse -arch i386" AS=$CC AR=ar STRIP="strip -x -S" HOST_CC="clang -Qunused-arguments -msse2 -mfpmath=sse" AUTOCONF=/usr/local/Cellar/autoconf213/2.13/bin/autoconf213 HOST_CXX="clang++ -Qunused-arguments -msse2 -mfpmath=sse" sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=i386-apple-darwin9.2.0 --enable-macos-target=10.5 --enable-arm-simulator --enable-debug --enable-optimize --enable-nspr-build --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests python -u ~/fuzzing/js/compileShell.py -b "--enable-debug --enable-optimize --enable-more-deterministic --enable-nspr-build --32 --enable-arm-simulator -R ~/trees/mozilla-central" -r 81f979b17fbd autoBisect shows this is probably related to the following changeset: The first bad revision is: changeset: https://hg.mozilla.org/mozilla-central/rev/364dae502747 user: Jeff Walden date: Wed Jul 17 12:14:39 2013 -0700 summary: Bug 894653 - Self-host Error.prototype.toString, and fix an edge-case bug in the current implementation. r=till Waldo, is bug 894653 a likely regressor?
Flags: needinfo?(jwalden+bmo)
Attached file stack
(lldb) bt 5 * thread #1: tid = 0x909ad, 0x986de1c7 libsystem_platform.dylib`_platform_memmove$VARIANT$sse42 + 215, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x986de1c7 libsystem_platform.dylib`_platform_memmove$VARIANT$sse42 + 215 frame #1: 0x006ae7e2 js-dbg-32-dm-nsprBuild-armSim-darwin-81f979b17fbd`js::jit::AssemblerBufferWithConstantPools<1024ul, 4ul, js::jit::Instruction, js::jit::Assembler>::finishPool() [inlined] void mozilla::PodAssign<js::jit::Pool>(aDst=<unavailable>, aSrc=0xbfffd934) + 50 at PodOperations.h:87 frame #2: 0x006ae7b0 js-dbg-32-dm-nsprBuild-armSim-darwin-81f979b17fbd`js::jit::AssemblerBufferWithConstantPools<1024ul, 4ul, js::jit::Instruction, js::jit::Assembler>::finishPool() [inlined] void mozilla::PodCopy<js::jit::Pool>(aDst=0x00000430, aNElem=<unavailable>) at PodOperations.h:107 frame #3: 0x006ae7b0 js-dbg-32-dm-nsprBuild-armSim-darwin-81f979b17fbd`js::jit::AssemblerBufferWithConstantPools<1024ul, 4ul, js::jit::Instruction, js::jit::Assembler>::finishPool(this=<unavailable>) + 1184 at IonAssemblerBufferWithConstantPools.h:689 frame #4: 0x0063de8f js-dbg-32-dm-nsprBuild-armSim-darwin-81f979b17fbd`js::jit::Assembler::finish() [inlined] js::jit::AssemblerBufferWithConstantPools<1024ul, 4ul, js::jit::Instruction, js::jit::Assembler>::flushPool(this=0xbfffd4b4) + 40 at IonAssemblerBufferWithConstantPools.h:703 (lldb)
It might have caused things to break, but I suspect only because the self-hosted version perturbs allocations just enough to cause a failure. Calling a JSNative version of the method wouldn't have those allocations. Nothing in my patch seems likely to be intrinsically responsible for the problem here, so I'm punting this back.
Flags: needinfo?(jwalden+bmo)
Forwarding to Marty due to this being related to the ARM simulator.
Flags: needinfo?(mrosenberg)
Whiteboard: [jsbugmon:update] → [jsbugmon:]
JSBugMon: Cannot process bug: Error: Failed to isolate test from comment
Bouncing to Jan - Marty is no longer paid staff with Mozilla. Maybe this is related to bug 1130672?
Flags: needinfo?(marty.rosenberg) → needinfo?(jdemooij)
I can no longer reproduce this with m-c rev caf25344f73e.
Status: NEW → RESOLVED
Closed: 10 years ago
Flags: needinfo?(jdemooij)
Resolution: --- → WORKSFORME
For archival purposes, there likely was a mistake in the testcase in comment 0, the real one is: try { f() } catch (e) { +e } try { Function(" \ for (var j = 0; j < 9; ++j) { \ try { \ undefined() \ } catch (e) { \ +e \ } \ } \ oomAfterAllocations(2); \ neuter(x, \"\"); \ ")() } catch (e) { +e } I've rechecked that both testcases WFM per comment 6.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: