Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
Simple recursive method calling leads to Segmentation fault instead of StackOverflowError throwing on Linux with -Xem:opt and jet.
It is handled incorrectly with -Xint on both Win and Linux .
On Windows with -Xem:opt and jet StackOverflowError is thrown correctly.
test for reproducing:
public class test {
public static void main(String [] args) {
try
catch (Throwable e)
{ System.out.println("was caught " + e); } }
}
to reproduce run script: bash run_lnx.sh
To reproduce bash run.sh:
-----------------------------------------------------------------------
export HY=../ drl_20061013_lnx_ia32_0002_icc_r_H
export LD_LIBRARY_PATH=$HY/bin
export SUN=../jdk1.5.0_06
$SUN/bin/javac -cp . test.java
echo -------SUN---------
$SUN/bin/java -cp . test
echo ---------HY -Xem:jet--------
$HY/bin/java -showversion
$HY/bin/java -cp . -Xem:jet test
echo ---------HY -Xem:opt--------
$HY/bin/java -cp . -Xem:opt test
echo -----------HY -Xint --------------
$HY/bin/java -cp . -Xint test
OUTPUT on Linux:
-------SUN---------
was caught java.lang.StackOverflowError
---------HY -Xem:jet--------
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its l
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r454528, (Oct 13 2006), Linux/ia32/icc 900, release build
http://incubator.apache.org/harmony
run_lnx.sh: line 10: 32502 Segmentation fault $HY/bin/java -cp . -Xem:jet test
---------HY -Xem:opt--------
SIGSEGV in VM code.
Stack trace:
1: ?? (??:-1)
2: ?? (??:-1)
3: ?? (??:-1)
4: ?? (??:-1)
5: ?? (??:-1)
6: ?? (??:-1)
7: ?? (??:-1)
8: ?? (??:-1)
9: ?? (??:-1)
10: ?? (??:-1)
11: ?? (??:-1)
12: ?? (??:-1)
13: ?? (??:-1)
14: ?? (??:-1)
15: ?? (??:-1)
16: ?? (??:-1)
17: ?? (??:-1)
18: ?? (??:-1)
19: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (??:-1)
20: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (??:-1)
<end of stack trace>
run_lnx.sh: line 12: 32538 Segmentation fault $HY/bin/java -cp . -Xem:opt test
----------HY -Xint -----------
java/lang/StackOverflowError : (null)
at test.main (test.java: 15)
at test.main (test.java: 7)
at test.main (test.java: 7)
at test.main (test.java: 7)
at test.main (test.java: 7)
....
OUTPUT on Windows:
-------SUN---------
was caught java.lang.StackOverflowError
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
---------HY with -Xem:jet--------
was caught java.lang.StackOverflowError
---------HY with -Xem:opt--------
was caught java.lang.StackOverflowError
----------HY with -Xint
java/lang/StackOverflowError : (null)
at test.main (test.java: 15)
at test.main (test.java: 7)
at test.main (test.java: 7)
at test.main (test.java: 7)
at test.main (test.java: 7)
Attachments
Attachments
Issue Links
- blocks
-
HARMONY-4108 [M2] umbrella task for 98% pass rate of Stress tests - HARMONY-3536; no regression since M1
- Closed
- depends upon
-
HARMONY-3010 [drlvm][thread] VM crashes with seg fault on the recursive call of a synchronized method
- Closed
- is blocked by
-
HARMONY-4118 [drlvm][jit] Stack overflow handling support in Jitrino compiler
- Closed
- is related to
-
HARMONY-4265 [drlvm][jit] Save quantity of try and catch blocks equals.
- Open
-
HARMONY-4264 [drlvm][stack] Tune size requred for set up guard page, class loading and method compilation.
- Closed