Open
Bug 708862
Opened 13 years ago
Updated 2 years ago
Several tests fail with "InternalError:too much recursion" in debug builds on Mac
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
NEW
People
(Reporter: jorendorff, Unassigned)
References
Details
All these tests pass in opt builds, and nobody seems to have any trouble with them on Linux.
$ g++ -v
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.1~22/src/configure --disable-checking --enable-werror --prefix=/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.1~22/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
$ python tests/jstests.py -so ./d-objdir/js js1_5/Regress/regress-96526-003.js
/Users/jorendorff/dev/mi/js/src/d-objdir/js -f shell.js -f js1_5/shell.js -f js1_5/Regress/shell.js -f ./js1_5/Regress/regress-96526-003.js
rc = 3, run time = 0.050431
too much recursion
REGRESSIONS
js1_5/Regress/regress-96526-003.js
FAIL
$ python tests/jstests.py -so ./d-objdir/js js1_8/genexps/regress-380237-01.js
/Users/jorendorff/dev/mi/js/src/d-objdir/js -f shell.js -f js1_8/shell.js -f js1_8/genexps/shell.js -f ./js1_8/genexps/regress-380237-01.js
rc = 3, run time = 2.929350
BUGNUMBER: 380237
STATUS: Generator expressions - sudoku
4 8 3 |9 2 1 |6 5 7
9 6 7 |3 4 5 |8 2 1
2 5 1 |8 7 6 |4 9 3
------+------+------
5 4 8 |1 3 2 |9 7 6
7 2 9 |5 6 4 |1 3 8
1 3 6 |7 9 8 |2 4 5
------+------+------
3 7 2 |6 8 9 |5 1 4
8 1 4 |2 5 3 |7 6 9
6 9 5 |4 1 7 |3 8 2
./js1_8/genexps/regress-380237-01.js:178: InternalError: too much recursion
REGRESSIONS
js1_8/genexps/regress-380237-01.js
FAIL
$ python jit-test/jit_test.py -so ./d-objdir/js basic/bug529130.js
/Users/jorendorff/dev/mi/js/src/d-objdir/shell/js -m -e "const platform='darwin'; const libdir='/Users/jorendorff/dev/mi/js/src/jit-test/lib/';" -f /Users/jorendorff/dev/mi/js/src/jit-test/lib/prolog.js -f /Users/jorendorff/dev/mi/js/src/jit-test/tests/basic/bug529130.js
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
/Users/jorendorff/dev/mi/js/src/jit-test/tests/basic/bug529130.js:11: InternalError: too much recursion
Exit code: 3
Reporter | ||
Comment 2•13 years ago
|
||
The stack frame for js_Interpret is something like 15K large, and local variables only account for a small fraction of that. I sent 25MB of dwarfdump output to jimb and he says it must be a GCC bug.
It seems unlikely that we are going to get that fixed. But I will leave this bug open since there are other ways to fix this issue (weaken the tests; disable them on mac; tinker with js_Interpret until we're not triggering the bug anymore; increase the stack size; etc.)
Comment 3•13 years ago
|
||
Since this is (likely) a bug in the old GCC version used on Mac OSX, are there any plans to move Mac builds over to Clang? There's a big meta-bug about getting builds working on Clang, but I couldn't find anything about switching over to it.
Comment 4•13 years ago
|
||
I've seen these tests fail due to too much recursion on Linux64 as well. I don't remember if this is with gcc 4.6 or with clang 3.0; might be both.
Comment 5•13 years ago
|
||
(Linux64 debug)
Comment 6•13 years ago
|
||
I get the "too much recursion" error with Clang 3.0 on OS X (64-bit), but not with g++-4.2 (g++ without LLVM). The default "g++" on OS X uses LLVM nowadays, so this looks like an LLVM problem.
Reporter | ||
Comment 7•13 years ago
|
||
The workaround is to configure with
CC=gcc-apple-4.2 CXX=g++-apple-4.2 ../configure ...
Assignee | ||
Updated•10 years ago
|
Assignee: general → nobody
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•