United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6549267 BigApp failure - timing bug in parallel bootstrap classloader
JDK-6549267 : BigApp failure - timing bug in parallel bootstrap classloader

Details
Type:
Bug
Submit Date:
2007-04-23
Status:
Closed
Updated Date:
2012-10-08
Project Name:
JDK
Resolved Date:
2007-06-20
Component:
hotspot
OS:
solaris_10
Sub-Component:
runtime
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs10 (b14)

Related Reports
Backport:
Backport:
Backport:
Relates:

Sub Tasks

Description
We have run into 2 BigApps failures when running w/ shared server VM. Both are asserts w/ the same message and they happen right away.

I started another run of the same App w/o CDS on -server. It has been running OK for more than 3 days now. 

App : BigApps (see comments)
OS : Solaris 10 x64

Flags : -server  -XX:+UseSerialGC -XX:+ShowMessageBoxOnError -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

VM : -server w/ sharing on
Java HotSpot(TM) Tiered VM (build 20070418083141.never.c1-fastdebug, mixed mode, sharing)

Host : jtg-sunfire-2.sfbay
root pass : please contact submitter

java process is still running :

Here is the error message :

> ------------------------------------------------------------------------------
> Internal Error at methodOop.cpp:628, pid=17954, tid=90
> Error: assert(_i2i_entry == 0,"should only be called once")
>
> Do you want to debug the problem?
>
> To debug, run 'dbx - 17954'; then switch to thread 90
> Enter 'yes' to launch dbx automatically (PATH must include dbx)
> Otherwise, press RETURN to abort...
> ============================================================================== 

-------------------------------------------------------------
(dbx) where
current thread: t@90
dbx: read of 8 bytes at address b90c2000 failed -- No such file or directory
dbx: attempt to read frame failed -- cannot derive frame pointer
  [1] ___nanosleep(0xb90c0be8, 0xb90c0bf0), at 0xbff30327
  [2] _sleep(0x64), at 0xbff24a23
  [3] os::message_box(0xbfb16676, 0xbfc50018), at 0xbecca5da
  [4] VMError::show_message_box(0xb90c0d7c, 0xbfc50018, 0x7d0), at 0xbef4f775
  [5] VMError::report_and_die(0xb90c0d7c), at 0xbef4ee15
  [6] report_assertion_failure(0xbf88f193, 0x274, 0xbf88f15e), at 0xbe6fdabb
  [7] methodOopDesc::link_method(0x98b1a900, 0x81b1954, 0x81b1000), at 0xbec6e4ba
  [8] SystemDictionary::load_shared_class(0xb90c0fa8, 0x81b1934, 0x0), at 0xbee2cc15
  [9] SystemDictionary::load_shared_class(0xb90c1020, 0x81b192c, 0x0), at 0xbee2b7af
  [10] SystemDictionary::load_instance_class(0xb90c1224, 0x81b192c, 0x0), at 0xbee2dda5
  [11] SystemDictionary::resolve_instance_class_or_null(0xb90c130c, 0x81b192c, 0x0, 0x0, 0x81b1000), at 0xbee28aad
  [12] SystemDictionary::resolve_or_null(0xb90c130c, 0x81b192c, 0x0, 0x0, 0x81b1000), at 0xbee24a4d
  [13] SystemDictionary::resolve_or_fail(0xb90c15ac, 0x81b192c, 0x0, 0x0, 0x1, 0x81b1000), at 0xbee23bf6
  [14] constantPoolOopDesc::klass_at_impl(0xb90c1778, 0x81b1928, 0xdb, 0x81b1000), at 0xbe6ec0b0
  [15] constantPoolOopDesc::klass_at(0xb90c1778, 0x98b0b028, 0xdb, 0x81b1000), at 0xbe568e01
  [16] InterpreterRuntime::_new(0x81b1000, 0x98b0b028, 0xdb, 0xbae169c4, 0x900f06d8, 0xb90c17d0), at 0xbe8226f4
  [17] 0xbae16a09(0x900f06d8, 0xb90c17fc, 0x982054e7, 0xb90c1834, 0x98b0b6e0, 0x0), at 0xbae16a08
  [18] 0xbae02f0d(0x0, 0x1, 0x0, 0x900f06c0, 0x900f06d8, 0xb90c1838), at 0xbae02f0c
  [19] 0xbae02f0d(0x2288, 0x90778ce0, 0x900f06d8, 0x900f06d8, 0x900f06f0, 0xb90c1874), at 0xbae02f0c
  [20] 0xbae02f0d(0x2288, 0x900f06f0, 0xb90c18a4, 0x940241a4, 0xb90c18d0, 0x94027270), at 0xbae02f0c
  [21] 0xbae02f0d(0x0, 0x900f06f0, 0xb90c18d4, 0x940242a5, 0xb90c18fc, 0x94027270), at 0xbae02f0c
  [22] 0xbae02ce1(0x900f06f0, 0xb90c1900, 0x9400f79b, 0xb90c19b4, 0x940219d0, 0x0), at 0xbae02ce0
  [23] 0xbae02da7(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xbae02da6
  [24] 0xbae033e9(0x9075c9f0, 0x1, 0x81b1000, 0x1f80, 0xbfba61d8, 0x81b1000), at 0xbae033e8
  [25] 0xbae0029d(0xb90c1a30, 0xb90c1ce8, 0xa, 0x98816690, 0xbae0afa0, 0xb90c1bf8, 0x1, 0x81b1000), at 0xbae0029c
  [26] JavaCalls::call_helper(0xb90c1ce4, 0xb90c1b58, 0xb90c1bf0, 0x81b1000), at 0xbe848adc
  [27] os::os_exception_wrapper(0xbe84843c, 0xb90c1ce4, 0xb90c1b58, 0xb90c1bf0, 0x81b1000), at 0xbecca7d3
  [28] JavaCalls::call(0xb90c1ce4, 0x81b1920, 0xb90c1bf0, 0x81b1000), at 0xbe848410
  [29] JavaCalls::call_virtual(0xb90c1ce4, 0x81b1914, 0xbfc4931c, 0xbfc49580, 0xb90c1bf0, 0x81b1000), at 0xbe847732
  [30] JavaCalls::call_virtual(0xb90c1ce4, 0x81b1910, 0x81b1914, 0xbfc4931c, 0xbfc49580, 0x81b1000), at 0xbe847944
  [31] thread_entry(0x81b1000, 0x81b1000), at 0xbe98188d
  [32] JavaThread::thread_main_inner(0x81b1000), at 0xbee65046
  [33] JavaThread::run(0x81b1000), at 0xbee64d86
  [34] java_start(0x81b1000), at 0xbecc44f2
  [35] _thr_setup(0xb97d5c00), at 0xbff2fd36
=>[36] _lwp_start(), at 0xbff30020
  [37] 0x0(), at 0xffffffffffffffff
(dbx) 

-------------------------------------------------------------

                                    

Comments
WORK AROUND

specify -Xshare:off
                                     
2007-04-23
EVALUATION

Timing hole in logic that prevents bootstrap classloader from having more than one thread load the same class/classloader at the same time. Multiple classes can load in parallel with the bootstrap classloader. No benefit, and complications from a single class loading in parallel.
                                     
2007-05-07



Hardware and Software, Engineered to Work Together