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.
1.3.1_14 b01Fixed
Related Reports
Relates :  
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.

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

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.3.1_14 FIXED IN: 1.3.1_14

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. ###@###.### 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