United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4971124 : JIT Compiler crashes c2/opto/server VM on 1.4.2 ( Windows + Solaris )

Details
Type:
Bug
Submit Date:
2003-12-19
Status:
Resolved
Updated Date:
2004-03-30
Project Name:
JDK
Resolved Date:
2004-03-08
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P1
Resolution:
Fixed
Affected Versions:
1.4.2_03
Fixed Versions:
1.4.2_05 (05)

Related Reports
Backport:
Relates:
Relates:

Sub Tasks

Description
C2 Compiler crashes in method: addIviewResource in attached source code.

There are additional known methods which lead to the crashes;
They are documented in SAP internal note 693169.

exclude com/sap.mw/jco/util/SAPCharToNUCByteConverter outLength
exclude com/sapportals/portal/pb/layout/taglib/ContainerTag addIviewResource
exclude com/sap/engine/services/keystore/impl/security/CodeBasedSecurityConnector  
	getApplicationDomain

Another way to avoid the crashes is the option -XX:-Inline

All crashes are platform independent the happen on Solaris,Windows and Linux
(32 Bit and 64 Bit).


###@###.### 2004-01-12

                                    

Comments
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.2_05
generic
tiger-beta2

FIXED IN:
1.4.2_05
tiger-beta2

INTEGRATED IN:
1.4.2_05
tiger-b42
tiger-beta2


                                     
2004-06-14
SUGGESTED FIX

See:

http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/export2/archived_workspaces/main/c2_baseline/2004/20040302070650.rasbold.c2_baseline/workspace/webrevs/webrev-2004.03.02/index.html

###@###.### 2004-03-02
                                     
2004-03-02
EVALUATION

The details on this bug are very sketchy.  Answers to some of these questions
would help us get started:

Does the crash happen every time in the application?  How soon does it happen after
application startup?

What does the stack trace look like on failure?

Do you have a test case that we can reproduce?  A small test case?

Can we have the .class or .jar file(s)? 

Will you run alternate VMs for us?

Does it happen with -XX:-Inline?

What does the -XX:+PrintCompilation -XX:-CICompilerCount=1 output look like?

###@###.### 2003-12-22

With fastdebug, the application asserts on src/share/vm/opto/type.hpp, 326, same as 4911268.  Yumin has backported the fix for 4911268 to 1.4.2 and reran the SAP application under fastdebug without problem.

###@###.### 2004-01-14

Further investigation shows an assert in do_exits() indicating a unexpected condition upon exit. 

We are seeing multiple ciKlass objects in this compilation for the class java.servlet.http.Cookie, all but one of which are marked as "unloaded".  We believe that the conflict between the "loaded" ciKlass object and the others is the cause of the problems in the compiler.

The use of multiple class loaders in the application may be triggering the CI problem. We are instrumenting the CI to find out more information.

###@###.### 2004-01-28

A combination of multiple class loaders and inlining is causing the problem.

A class is resolved during inlining, triggering a switch from "unloaded" to "loaded" of the return ciKlass.  The compiler senses the conflict in types at the return Phi merge point, and thinks the return is unreachable.

First, the easy fix is to use TypeOopPtr::Bottom for the ret_phi when the compiler sees an unloaded type.

A better choice would be to delay the creation of the return type (C2-wise) until the complete method has been parsed. In this way, the compiler would avoid seeing any unloaded ciKlasses until all resolution is complete.

A third change, which would complement either of the first two, would be enforce consistent results from the CI: when loading a klass by name, the CI should check the unloaded klass list to see if any loaded klass with a particular name has already been returned as unloaded.

###@###.### 2004-02-12
                                     
2004-02-12



Hardware and Software, Engineered to Work Together