JDK-4757048 : [1.3.1_04] JVM crash in compute_entry
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.3.1_04
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2002-10-02
  • Updated: 2002-11-02
  • Resolved: 2002-11-02
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_07 07Fixed
Related Reports
Relates :  
Description
Application crashes intermittently (every 1-2 weeks) with the following error:

Unexpected Signal : 11 occurred at PC=0xfe1de0f4 
Function name=JVM_GetMethodIxExceptionTableEntry 
Library=/appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre-1.3.1_0
4/solaris/lib/sparc/server/libjvm.so

Current Java thread: 
        at java.util.Arrays.mergeSort(Arrays.java:1183) 
        at java.util.Arrays.mergeSort(Arrays.java:1184) 
        at java.util.Arrays.mergeSort(Arrays.java:1183) 
        at java.util.Arrays.mergeSort(Arrays.java:1184) 
        at java.util.Arrays.sort(Arrays.java:1123) 
        at com.algorithmics.are.market.statistics.StdDev.compute(StdDev.java:79) 
        at com.algorithmics.are.aggrengine.simfunction.StatisticsFunction.compute(StatisticsF
unction.java:65) 
        at com.algorithmics.are.aggrengine.nodeevaluation.nodes.SimComputeNode.process(SimCom
puteNode.java:474) 
        at com.algorithmics.are.aggrengine.nodeevaluation.nodes.SimComputeNode.doWork(SimComp
uteNode.java:540) 
        at
com.algorithmics.are.aggrengine.nodeevaluation.computethreads.ComputeThreadController.doWork(
ComputeThreadController.java:46)

        at com.algorithmics.are.aggrengine.nodeevaluation.computethreads.PooledThread.run(Poo
ledThread.java:59) 

Dynamic libraries: 
0x10000        
/appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre-1.3.1_04/solari
s/bin/../bin/sparc/native_threads/java

0xff350000      /usr/lib/libthread.so.1 
0xff390000      /usr/lib/libdl.so.1 
0xff200000      /usr/lib/libc.so.1 
0xff340000      /usr/platform/SUNW,Sun-Fire-880/lib/libc_psr.so.1 
0xfe000000     
/appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre-1.3.1_04/solari
s/lib/sparc/server/libjvm.so

0xff2e0000      /usr/lib/libCrun.so.1 
0xff1e0000      /usr/lib/libsocket.so.1 
0xff100000      /usr/lib/libnsl.so.1 
0xff0d0000      /usr/lib/libm.so.1 
0xff310000      /usr/lib/libw.so.1 
0xff0b0000      /usr/lib/libmp.so.2 
0xff080000     
/appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre-1.3.1_04/solari
s/lib/sparc/native_threads/libhpi.so

0xff050000     
/appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre-1.3.1_04/solari
s/lib/sparc/libverify.so

0xfe7c0000      /appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre
-1.3.1_04/solaris/lib/sparc/libjava.so

0xff020000      /appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre
-1.3.1_04/solaris/lib/sparc/libzip.so

0xfdd70000      /appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-apps/jre
-1.3.1_04/solaris/lib/sparc/libnet.so

0xfdd50000      /usr/lib/nss_files.so.1 
0xfccc0000      /appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/are-v4.1.1/lib/libDo
ubleInput.so 

Local Time = Fri Aug 16 13:31:05 2002 
Elapsed Time = 144918 
# 
# HotSpot Virtual Machine Error : 11 
# Error ID : 4F530E43505002BD 01 
# Please report this error at 
# http://java.sun.com/cgi-bin/bugreport.cgi 
# 
# Java VM: Java HotSpot(TM) Server VM (1.3.1_04-b02 mixed mode) 
# 

The application is very CPU-intensive and multithreaded.  Running on Solaris 8 with 4 CPUS.  The crash is occurring on a production system, so -Xint and -client flags were not tested due to expected performance impact.

Pstack on the core file gives:

core 'core' of 17711:   /appl_sw/prod/robecoam/algoam/software/AlgoSuite_reports/third-party-
a
-----------------  lwp# 67 / thread# 2625  --------------------
 ff369740 sleep    (ff36bf18, 0, 0, 38781d70, ff37e000, 0) + 1cc
 ff35e108 _sigon   (38781d70, ff385938, 6, 3877fb34, 38781d70, 6) + 8c
 ff361148 _thrp_kill (0, 50, 6, ff37e000, 50, ff2bc488) + b4
 ff24b450 qst      (6, 0, 0, ffffffff, ff2bc3f4, 4) + 190
 ff235a7c abort    (ff2b801c, 3877fc88, 0, fffffff8, 4, 3877fca9) + d0
 fe3c7da4 void os::abort(long) (1, fe4ce000, 1, 3877fd08, 0, fe1de0f4) + b8
 fe3c6ec8 void os::handle_unexpected_exception(Thread*,int,unsigned char*,void*) (ff2bc324, f
e53e4b0, fe4e214c, fe474a38, fe4ce000, 3877fd28) + 254
 fe20bd0c JVM_handle_solaris_signal (0, 61d760, 387807b0, fe4ce000, b, 38780a68) + 8ec
 ff36b7dc _ex_unwind_local (b, 38780a68, 387807b0, fe20bd24, 38781e14, 38781e04) + 4
 ff3684c0 sigacthandler (b, 38781d70, 0, 0, 0, ff37e000) + 6c4
 --- called from signal handler with signal 11 (SIGSEGV) ---
 fe1de0f4 void CompiledStaticCall::compute_entry(methodHandle,StaticCallInfo&) (38780dbc, 387
80de4, 38780df4, 38780dfc, 61d760, 38780df4) + 2c
 fe175000 unsigned char*OptoRuntime::resolve_helper(JavaThread*,long,long,Thread*) (61d760, 0
, 61d760, 4ed454, fe4ce000, 0) + 2d0
 fe1de188 unsigned char*OptoRuntime::resolve_static_call_C(JavaThread*) (61d760, fe4ce000, 0,
 0, 0, 0) + 2c
 fac00fcc ???????? (3c9f5978, 3c7e0788, 61, 6b, 3c7e18a8, 0)
 fae381c4 ???????? (3c7e0788, 3c9f5978, 61, 75, 3c9f5978, 3c7e18a8)
 fac4e730 ???????? (3c7e0788, 0, 38781274, 3878128c, 1920a0, 6cc)
 00193f14 ???????? (3878132c, ea, 387813bc, 19fb78, 14, 38781220)
 00193f14 ???????? (387813cc, 9c, 38781440, 19fb78, 14, 387812c0)
 00193f14 ???????? (38781450, fe4ce000, 43a7f8, 19fb78, 14, 38781360)
 fac4e854 ???????? (3c9f5978, 3c7e0788, 0, 9c, 14, 38781400)
 fadfc530 ???????? (526ab700, 3c7e18a8, 3c7e09f4, 9c, 526ab798, 61d760)
 facce170 ???????? (526ab700, 0, 38781574, 3878158c, 191800, 109a0)
 00193f38 ???????? (3878161c, f6d4dfe0, 38781688, 19f8c8, 14, 38781520)
 001940a0 ???????? (38781694, 1, 5273e320, 19fc3c, 18, 387815a8)
 fac9df10 ???????? (5260a6a8, 5273e320, 527b53b0, 0, 10, 38781648)
 fadff5fc ???????? (f6835ae0, 0, 0, 5273e320, f6837578, fe4ce000)
 fae6b074 ???????? (526ab870, 0, 526ab870, 0, 387818a0, 5409a170)
 fad80ac8 ???????? (4e4e4a98, 0, 0, 0, 0, 0)
 fac0fe44 ???????? (3b067ae8, 1, fe4dca68, 38781d10, 1e, e)
 fe538048 StubRoutines::_code1 (387819d8, 38781c10, a, f6cf1020, 4, 387818f0) + 3f4
 fe0cd0c8 void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*) (3
8781c08, fe4ce000, 38781b54, 61d760, 195d64, 38781c10) + 308
 fe1f82e8 void JavaCalls::call_virtual(JavaValue*,KlassHandle,symbolHandle,symbolHandle,JavaC
allArguments*,Thread*) (f6cf1250, 38781b40, 38781b44, fe4ce000, 38781c08, 38781b54) + 150
 fe1fe2b8 void JavaCalls::call_virtual(JavaValue*,Handle,KlassHandle,symbolHandle,symbolHandl
e,Thread*) (38781c08, 38781c04, 38781c00, 38781bf4, 38781bec, 61d760) + 60
 fe21caec void thread_entry(JavaThread*,Thread*) (f6817f78, 61d760, fe4ce000, 38781d10, 1e, e
) + 120
 fe2175ec void JavaThread::run() (38702000, fe4d9e1c, fe4ce000, 7fd70, 61d760, 7fd70) + 3d8
 fe215320 _start   (fe4ce000, fcc95d10, 0, 5, 1, fe401000) + 20
 ff36b6e0 _restorefsr (61d760, 0, 0, 0, 0, 0)

(other threads not included, but can be provided upon request)
 

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.3.1_07 FIXED IN: 1.3.1_07 INTEGRATED IN: 1.3.1_07
14-06-2004

WORK AROUND N/A
11-06-2004

EVALUATION Apply the same fix to compute_entry as in 4503832. ###@###.### 2002-10-28
28-10-2002

SUGGESTED FIX The comments suggest the following patch to CompiledStaticCall::compute_entry which I generated by a diff between 1.3.1_04 and the current 1.4.2 workspace. *** 474,482 **** // Compute settings for a CompiledStaticCall. Since we might have to set // the stub when calling to the interpreter, we need to return arguments. void CompiledStaticCall::compute_entry(methodHandle m, StaticCallInfo& info) { ! if (m->has_compiled_code()) { info._to_interpreter = false; ! info._entry = m->code()->verified_entry_point(); info._callee = m; } else { // Callee is interpreted code. In any case entering the interpreter --- 483,492 ---- // Compute settings for a CompiledStaticCall. Since we might have to set // the stub when calling to the interpreter, we need to return arguments. void CompiledStaticCall::compute_entry(methodHandle m, StaticCallInfo& info) { ! nmethod* m_code = m->code(); ! if (m_code != NULL) { info._to_interpreter = false; ! info._entry = m_code->verified_entry_point(); info._callee = m; } else { // Callee is interpreted code. In any case entering the interpreter ###@###.### 2002-10-16 ----- -----
16-10-2002