|
Quick Lists
|
|
Bug ID:
|
4503832
|
|
Votes
|
0
|
|
Synopsis
|
atg server failed with Merlin b79 on x86 in C2 mixed mode
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
1.3.0_03
, 1.3.1_02
, merlin-beta3
|
|
Release Fixed
|
1.3.1_03,
1.4(merlin-beta3) (Bug ID:2047197)
|
|
State
|
10-Fix Delivered,
Needs Verification,
bug
|
|
Priority:
|
1-Very High
|
|
Related Bugs
|
4479571
,
4718872
,
4757048
|
|
Submit Date
|
17-SEP-2001
|
|
Description
|
On machine jtgbp62d.sfbay, with Merlin build 79, customer server hang after 30 minutes with -server flag.
Error message in atgserver.log
"Unexpected Signal: 11, PC: de9671c8"
Segv in "compute_monomorphic_entry".
Stack trace:
---- called from signal handler with signal 11 (SIGSEGV) ------
[9] CompiledIC::compute_monomorphic_entry(0x827b074), at 0xde9671c8
[10] OptoRuntime::inner_resolve_helper(0x827a928), at 0xde95202c
[11] OptoRuntime::resolve_helper(0x827a928), at 0xde951e46
[12] OptoRuntime::resolve_opt_virtual_call_C(0x827a928), at 0xde96b7f7
log files are under /net/jtgb4u4c.sfbay/export/sail9/bigapps_log/solaris/merlin_b79/jtgbp62d/ customer *
there is a gcore (core.317) under
/net/jtgb4u4c.sfbay/export/sail9/bigapps_log/solaris/merlin_b79/jtgbp62d/ customer *
xxxxx@xxxxx 2001-09-17
|
|
Work Around
|
The problem is a race between the deoptimization of
some method X and the dynamic linkage which occurs
at the first call to X. The linker asks for the
compiled code twice (in rapid succession) and loses
if the compiled code is thrown away between the
two queries.
This bug often shows up during start-up or other phase
changes in the application, since it requires the linker
to be performing a one-time initialization a call site.
Therefore, perturbing the application so that it
performs less deoptimization should lower the probability
of this bug hitting. One way to attempt this is to have the
compiler compile more selectively and slowly, such as
with a setting like -XX:CompileThreshold=20000 .
xxxxx@xxxxx 2002-02-19
|
|
Evaluation
|
Diagnosis: Race condition between call to methodOop::has_compiled_code
and methodOop::code. The methodOop::_code field slowly oscillates between
null and non-null, and the hapless caller of has_compiled_code picked
up a newly-set null pointer and indirected through it.
Solution: Visit all places where has_compiled_code() and code()!=NULL
predicates are used, and change them to fetch the code exactly once
instead of twice.
xxxxx@xxxxx 2001-09-28
The bug is fixed in JDK1.4.0-beta3-b84(merlin-beta3)
xxxxx@xxxxx 2001-12-10
The bug is also fixed in 1.3.1_03, not yet released, but soon.
xxxxx@xxxxx 2002-01-03
|
|
Comments
|
Submitted On 22-OCT-2001
mkenig
So what version is this bug being fixed in????
Submitted On 26-NOV-2001
MarkWeisser
Yes, where is this fixed? Error still occurs in 1.3.1_01.
Submitted On 07-DEC-2001
khooke
Will this be fixed in 1.3.1_02? If so when is this
available? Or will the fix only be available in merlin
(beta4?)
Submitted On 18-FEB-2002
AstonChan
Obviously it is not fixed in 1.3.1_02. Is there any work
around before 1.3.1_03 is available?? Thanks.
Submitted On 06-DEC-2002
pradeepjoshi
Is this fixed or not, If yes which version.
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |