JDK-5053921 : Application crashes using :XX+UseTLE and -server on Windows
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.3.1_12
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_2000
  • CPU: x86
  • Submitted: 2004-05-27
  • Updated: 2004-11-21
  • Resolved: 2004-11-21
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_14 b01Fixed
Related Reports
Relates :  
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 progress. 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

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.3.1_14 FIXED IN: 1.3.1_14
02-10-2004

WORK AROUND -client option
02-10-2004

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. ###@###.### 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. ###@###.### 2004-08-25
28-06-2004