|
Quick Lists
|
|
Bug ID:
|
5053921
|
|
Votes
|
0
|
|
Synopsis
|
Application crashes using :XX+UseTLE and -server on Windows
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
1.3.1_12
|
|
Release Fixed
|
1.3.1_14(b01)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
2-High
|
|
Related Bugs
|
6583812
|
|
Submit Date
|
27-MAY-2004
|
|
Description
|
The application crashes at boot time when using 1.3.1_12-b02 (_11 as well)
use UseTLE in conjunction with the -server option on Windows.
Symptoms:
The application crashes always with-server -XX+UseTLE. -printCompilation shows that it crashes with different methods being compiled.
Excluding methods allows the application to customer . It however crashes
later (methods being excluded 3 times with and without -xcomp).
The application never crashes with -Xint or -client in conjunction with -XX:UseTLE.
The application crashes without any hot spot err id.
The application crashes as well with a fulldebug version.
It runs into assertion failures.
See two following logs.
Assertion seems to be
# assert(_no_handle_mark_nesting == 0, "allocating handle inside NoHandleMark")
#
# Error ID: D:\BUILD_AREA\jdk131-update\ws\fcs\hotspot\src\share\vm\runtime\handles.cpp, 18
#
# Problematic Thread: prio=5 tid=0x6d346d90 nid=0x188c runnable
#
[error occured during error reporting]
see attachment trace2.txt
|
|
Work Around
|
-client option
|
|
Evaluation
|
In chaitin.cpp:
PhaseChaitin::stretch_base_pointer_live_ranges:
A non oop derived pointer is dealt like a oop to get base oop pointer. change:
------- chaitin.cpp -------
1894c1894
< if( tj && tj->_offset != 0 ) {
---
> if( tj && tj->_offset != 0 && tj->isa_oop_ptr()) {
avoid the crash in SwingSet2.
The binary delivered to customer for test.
The bug is solved in merlin beta2, before that version, all failed with -XX:+UseTLAB (UseTLE in 131).
This part in graphKit.cpp gives well explaination:
// We need a Region for the loop-back contended case. The loop-back edge
// is dead and the Region unused with TLABs. We'll make it anyways and
// rely on the optimizer to fold it away. Then we'll do the folding in the
// parser but it will simplify things to have all the logic around for the
// general case.
So the true fix for this problem is buried in the big changes which occured from beta to beta2.
xxxxx@xxxxx 2004-06-28
Above diff works for customer.
A non OopPtr in this case (UseTLE applied) was used to get the base pointer caused this failure.
xxxxx@xxxxx 2004-08-25
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |