JDK-4523683 : java.lang.OutOfMemoryError thrown with server -Xcomp in 1.3.1_02
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.3.1_02
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: x86
  • Submitted: 2001-11-06
  • Updated: 2001-11-20
  • Resolved: 2001-11-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.3.1_02 02Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Steps to reproduce :
1) Install the JDK 1.3.1_02 from:
	/java/re/jdk/1.3.1_02/promoted
2) Download the attachment "TestCase.java".
3) Compile the testcase
   <JDK1.3.1_02>/bin/javac TestCase.java
4) Execute the testcase
   <JDK1.3.1_02>/bin/java -server -Xcomp TestCase

java version "1.3.1_02-ea"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_02-ea-b01)
Java HotSpot(TM) Server VM (build 1.3.1_02-ea-b01, compiled mode)

We get the following error:
Exception in thread "CompileThread0" java.lang.OutOfMemoryError: requested 67108876

The test fails on x86 platforms (Windows 2000, Linux RedHat 7.1 and IA Solaris 8) with the -server -Xcomp flag only. The failure doesn't happen with client -Xcomp or -Xmixed and server -Xmixed. The testcase passes on 1.3.1_01, 1.3.1_01a and 1.4-b84 JDKs.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.3.1_02 FIXED IN: 1.3.1_02 INTEGRATED IN: 1.3.1_02 VERIFIED IN: 1.3.1_02
14-06-2004

EVALUATION Testcase exhibited problem in the server compiler where we were ending up in an infinite loop during the node creation in the graph. The fix is to add a check so that we don't end up in an infinite loop. Testcase exhibited the failure on INTEL architecture only, but the problem is generic and could have happened on SPARC also. ###@###.### 2001-11-08
08-11-2001

SUGGESTED FIX src/share/vm/opto/subnode.cpp 140c140 < if( op2 == Op_SubI && in2->in(1) != this ) { --- > if( op2 == Op_SubI && in2->in(1) != this && in2->in(1) != in2) { ###@###.### 2001-11-08
08-11-2001