United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6189687 : 1.4.2 fastdebug assert on linkResolver.cpp, 49

Details
Type:
Bug
Submit Date:
2004-11-02
Status:
Resolved
Updated Date:
2010-05-10
Project Name:
JDK
Resolved Date:
2004-12-07
Component:
hotspot
OS:
solaris_9,solaris_8
Sub-Component:
compiler
CPU:
sparc
Priority:
P2
Resolution:
Fixed
Affected Versions:
1.4.1_05,1.4.2_05,5.0
Fixed Versions:

Related Reports
Backport:
Backport:
Duplicate:
Duplicate:
Relates:
Relates:

Sub Tasks

Description
When debug for bug 5074710, customer app run with fastdebug of 1.4.2_06 hit this assertion:
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/linkResolver.cpp:49
#
# HotSpot Virtual Machine Error, assertion failure
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_20040924-debug mixed mode)
#
# assert(resolved_method->signature() == selected_method->signature(), "signatures must correspond")
#
# Error ID: /net/jpsesvr/jpse-US3/yq123930/1.4.2/hotspot/src/share/vm/interpreter/linkResolver.cpp, 49 [ Patched ]
#
# Problematic Thread: prio=5 tid=0x007e09b0 nid=0x2b runnable
#
###@###.### 11/2/04 21:20 GMT

                                    

Comments
SUGGESTED FIX

See PRT webrev:
http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2004/20041119153157.rasbold.c2_baseline/workspace/webrevs/webrev-2004.11.20/index.html

###@###.### 2004-11-18 17:58:56 GMT
###@###.### 2004-11-22 16:05:57 GMT
                                     
2004-11-09
EVALUATION

Due to uneven evolution in two classes, the compiler sees two methods with same signature in classes with a subclass-superclass relationship.  In the subclass, the method is private static, in the superclass, the same method is public virtual.  In trying to do optimized calls with profile data and/or CHA, the compiler incorrectly attempts to call the static method at the virtual call site.  Sometimes bad code happens, sometimes runtime errors happen, and in certain cases, their may be no ill effects.

In the attached test case, the method is "m".  In the customer's test case, the method is call "isTraceOn".
###@###.### 11/2/04 23:40 GMT

Class evolution is one way, but not the only way to provoke this bug. The attached test t6189687 is example of two methods with the same name/signature but different attributes related by class hierarchy.

###@###.### 2004-11-11 19:39:20 GMT
                                     
2004-11-02
WORK AROUND

There is no reliable workaround for all cases.
###@###.### 11/2/04 23:40 GMT
                                     
2004-11-02



Hardware and Software, Engineered to Work Together