JDK-4825523 : JVM crashes w/ SEGV when trying to execute Java code > 64 kB
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 1.3.1_07,1.4.1_01
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_8,windows_2000
  • CPU: generic,x86
  • Submitted: 2003-02-28
  • Updated: 2013-08-07
  • Resolved: 2003-05-01
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 Other
1.3.1_09 09Fixed 1.4.1_05Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Java VM crashes w/ SEGV when trying to execute Java code > 64 kB.
This is the case for 1.3.1_07 and 1.4.1_01.

The problem can be easily reproduced.

1. Testcase
-----------
 The testcase consists of the following files:

-rw-r--r--   1 thomas   sun       114768 Feb 24 14:38 jsp_GroupDetail1045679866561.class
-rw-r--r--   1 thomas   sun       424165 Feb 24 14:38 jsp_GroupDetail1045679866561.java
-rw-r--r--   1 thomas   sun        20962 Feb 24 14:38 jstl.jar
-rw-r--r--   1 thomas   sun       350677 Feb 24 14:38 log4j-1.2.7.jar
-rw-r--r--   1 thomas   sun          961 Feb 28 13:37 Makefile
-rw-r--r--   1 thomas   sun          542 Feb 24 14:38 readme.txt
-rw-r--r--   1 thomas   sun        53389 Feb 24 14:38 servlet.jar
-rw-r--r--   1 thomas   sun       543177 Feb 24 14:38 servlet_jsp.jar
-rw-r--r--   1 thomas   sun       516487 Feb 24 14:38 standard.jar
-rw-r--r--   1 thomas   sun          471 Feb 24 14:38 Test.class
-rw-r--r--   1 thomas   sun          192 Feb 24 14:38 Test.java

 Unfortunately, the Java code cannot be compiled due to other missing 
 Java code.


2. Run Java 1.3.1_07
--------------------
% make run
/j2sdk1_3_1_07/bin/java -version
java version "1.3.1_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_07-b02)
Java HotSpot(TM) Client VM (build 1.3.1_07-b02, mixed mode)
/j2sdk1_3_1_07/bin/java  -classpath .:servlet.jar:servlet_jsp.jar:log4j-1.2.7.jar:standard.jar:jstl.jar Test

Unexpected Signal : 11 occurred at PC=0xfe68fc98
Function name=JVM_handle_solaris_signal
Library=/j2sdk1_3_1_07/jre/lib/sparc/client/libjvm.so

Current Java thread:
        at Test.main(Test.java:5)

Dynamic libraries:
0x10000         /j2sdk1_3_1_07/bin/../bin/sparc/native_threads/java
0xff350000      /usr/lib/libthread.so.1
0xff390000      /usr/lib/libdl.so.1
0xff200000      /usr/lib/libc.so.1
0xff330000      /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
0xfe400000      /j2sdk1_3_1_07/jre/lib/sparc/client/libjvm.so
0xff2d0000      /usr/lib/libCrun.so.1
0xff1d0000      /usr/lib/libsocket.so.1
0xff100000      /usr/lib/libnsl.so.1
0xff0d0000      /usr/lib/libm.so.1
0xff300000      /usr/lib/libw.so.1
0xff0b0000      /usr/lib/libmp.so.2
0xff070000      /j2sdk1_3_1_07/jre/lib/sparc/native_threads/libhpi.so
0xff040000      /j2sdk1_3_1_07/jre/lib/sparc/libverify.so
0xfe7c0000      /j2sdk1_3_1_07/jre/lib/sparc/libjava.so
0xfe790000      /j2sdk1_3_1_07/jre/lib/sparc/libzip.so
0xfe2a0000      /usr/lib/locale/en_US.ISO8859-15/en_US.ISO8859-15.so.2

Local Time = Fri Feb 28 14:06:04 2003
Elapsed Time = 60
#
# 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) Client VM (1.3.1_07-b02 mixed mode)
#
# An error report file has been saved as hs_err_pid5570.log.
# Please refer to the file for further information.
#
*** Error code 134
make: Fatal error: Command failed for target `run'
%


3. Stacktrace
-------------
% dbx -V /j2sdk1_3_1_07/bin/../bin/sparc/native_threads/java ./core
S1SCC 8 Dbx Debugger 7.1 EA1 2002/11/07
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.0' in your .dbxrc
Reading java
core file header read successfully
Reading ld.so.1
Reading libthread.so.1
Reading libdl.so.1
Reading libc.so.1
Reading libc_psr.so.1
Reading libjvm.so
Reading libCrun.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libm.so.1
Reading libw.so.1
Reading libmp.so.2
Reading libhpi.so
Reading libverify.so
Reading libjava.so
Reading libzip.so
Reading en_US.ISO8859-15.so.2
detected a multithreaded program
t@1 (l@1) terminated by signal ABRT (Abort)
0xff369764: __sigprocmask+0x0008:       jmp     %o7 + 0x8
(dbx) where
current thread: t@1
=>[1] __sigprocmask(0x0, 0xffbed288, 0x0, 0x0, 0x0, 0x0), at 0xff369764 
  [2] _resetsig(0xff36bf60, 0x0, 0x0, 0x25660, 0xff37e000, 0x0), at 0xff35e970 
  [3] _sigon(0x25660, 0xff385930, 0x6, 0xffbed35c, 0x25660, 0x6), at 0xff35e110 
  [4] _thrp_kill(0x0, 0x1, 0x6, 0xff37e000, 0x1, 0xff2c0440), at 0xff361150 
  [5] raise(0x6, 0x0, 0x0, 0xffffffff, 0xff2c03ac, 0x4), at 0xff24b944 
  [6] abort(0xff2bc000, 0xffbed4b0, 0x0, 0xfffffff8, 0x4, 0xffbed4d1), at 0xff2358e4 
  [7] os::abort(0x1, 0xfe73c000, 0x1, 0xffbed530, 0x0, 0xfe68fc98), at 0xfe685ddc 
  [8] os::handle_unexpected_exception(0xff2c029c, 0xfe778ffc, 0xfe74ed68, 0xfe702abc, 0xfe73c000, 0xffbed550), at 0xfe684ff0 
  [9] JVM_handle_solaris_signal(0x0, 0x28938, 0xffbedfd8, 0xfe73c000, 0xb, 0xffbee290), at 0xfe6884e0 
  [10] __sighndlr(0xb, 0xffbee290, 0xffbedfd8, 0xfe686d24, 0x25704, 0x256f4), at 0xff36b824 
  [11] sigacthandler(0xb, 0x25660, 0x0, 0x0, 0x0, 0xff37e000), at 0xff3684d8 
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [12] Relocator::rc_instr_len(0xffbee4ac, 0xb064, 0x7c8ed2c, 0x10, 0xfe73c000, 0xffbee36c), at 0xfe68fc98 
  [13] ChangeWiden::handle_code_change(0xffbee544, 0x4, 0xb064, 0xffbee4ac, 0xfe73c000, 0xffbee3dc), at 0xfe6914a4 
  [14] Relocator::insert_space_at(0x7c8ed2c, 0x7c8ecf4, 0xb064, 0x4, 0xffbee544, 0x28938), at 0xfe68fa60 
  [15] GenerateOopMap::expand_current_instr(0xffbee76c, 0xb064, 0xfe73c000, 0x4, 0xffbee544, 0xb064), at 0xfe5e46ec 
  [16] GenerateOopMap::rewrite_load_or_store(0x2, 0xfe73c000, 0x4, 0x2a, 0x2d3, 0xffbee5b8), at 0xfe5c46b0 
  [17] GenerateOopMap::rewrite_refval_conflicts(0xffbee76c, 0xf924c978, 0x203850, 0xfe73c000, 0xfe77a84c, 0xfe77b2fc), at 0xfe4fe04c 
  [18] GenerateOopMap::compute_map(0xfe746480, 0xfe6e30d8, 0xfe73c000, 0xffffffff, 0x1, 0x0), at 0xfe4f6e84 
  [19] ResolveOopMapConflicts::do_potential_rewrite(0xffbee868, 0xffbee868, 0xffbee76c, 0xffffffff, 0xfffffff8, 0xf8d08070), at 0xfe4f67c0 
  [20] Rewriter::rewrite_method(0xffbee868, 0xfe73c000, 0xffbee86c, 0x28938, 0xfe77a84c, 0xfe77b2fc), at 0xfe4ec5d4 
  [21] Rewriter::rewrite(0xfe77b2f8, 0xfe77b2f4, 0x1, 0x3, 0x8, 0xf8cdb428), at 0xfe4ebb28 
  [22] instanceKlass::link_class_impl(0xf8c00af8, 0x28938, 0xffbeea88, 0xfe73c000, 0xfe73c000, 0xffbee9a4), at 0xfe4ea9e4 
  [23] instanceKlass::initialize_impl(0xffbeeb90, 0xf8ceaf70, 0xfe73c000, 0x28938, 0xfe73c000, 0xffbeeb2c), at 0xfe50231c 
  [24] instanceKlass::initialize(0xf8ceaf70, 0x28938, 0x28938, 0xf8ceaf78, 0xffbeeca4, 0x2), at 0xfe502218 
  [25] InterpreterRuntime::_new(0x28938, 0xf8cacf70, 0x2, 0xfe73c000, 0x28938, 0x0), at 0xfe509acc 
  [26] 0x83520(0x0, 0x1, 0xfe749698, 0x7fa80, 0x1e, 0xe), at 0x8351f 
  [27] 0xfe772bb4(0xffbeee28, 0xffbef028, 0xa, 0xf8cad148, 0x7bef8, 0xffbeef5c), at 0xfe772bb3 
  [28] JavaCalls::call_helper(0xffbef020, 0xfe73c000, 0xffbeef54, 0x28938, 0x7bef8, 0xffbef028), at 0xfe5032c0 
  [29] JavaCalls::call(0xffbef020, 0xffbeef34, 0xffbeef54, 0x28938, 0xfe73c000, 0xffbeeecc), at 0xfe502f50 
  [30] jni_invoke(0x1, 0x28938, 0x0, 0x0, 0x102250, 0xffbef004), at 0xfe516a60 
  [31] jni_CallStaticVoidMethod(0xfe73c000, 0x28938, 0x102250, 0x289c4, 0xffbef088, 0x28938), at 0xfe56b1cc 
  [32] main(0x289c4, 0x0, 0x289c4, 0xffbefafe, 0x0, 0x2503c), at 0x11ca4 
(dbx)


4. Run Java 1.4.1_01
--------------------
% make run
/j2sdk1.4.1_01/bin/java -version
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
/j2sdk1.4.1_01/bin/java  -classpath .:servlet.jar:servlet_jsp.jar:log4j-1.2.7.jar:standard.jar:jstl.jar Test

Unexpected Signal : 11 occurred at PC=0xFE3595B8
Function=[Unknown. Nearest: JVM_handle_solaris_signal+0x1BF7C]
Library=/j2sdk1.4.1_01/jre/lib/sparc/client/libjvm.so

Current Java thread:
        at Test.main(Test.java:5)

Dynamic libraries:
0x10000         /j2sdk1.4.1_01/bin/java
0xff350000      /usr/lib/libthread.so.1
0xff390000      /usr/lib/libdl.so.1
0xff200000      /usr/lib/libc.so.1
0xff330000      /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
0xfe000000      /j2sdk1.4.1_01/jre/lib/sparc/client/libjvm.so
0xff2d0000      /usr/lib/libCrun.so.1
0xff1d0000      /usr/lib/libsocket.so.1
0xff100000      /usr/lib/libnsl.so.1
0xff0d0000      /usr/lib/libm.so.1
0xff300000      /usr/lib/libw.so.1
0xff0b0000      /usr/lib/libmp.so.2
0xff070000      /j2sdk1.4.1_01/jre/lib/sparc/native_threads/libhpi.so
0xff040000      /j2sdk1.4.1_01/jre/lib/sparc/libverify.so
0xfe7c0000      /j2sdk1.4.1_01/jre/lib/sparc/libjava.so
0xff020000      /j2sdk1.4.1_01/jre/lib/sparc/libzip.so
0xfe4e0000      /usr/lib/locale/en_US.ISO8859-15/en_US.ISO8859-15.so.2

Local Time = Fri Feb 28 14:16:22 2003
Elapsed Time = 63
#
# HotSpot Virtual Machine Error : 11
# Error ID : 4F530E43505002E6 01
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode)
#
# An error report file has been saved as hs_err_pid5621.log.
# Please refer to the file for further information.
#
*** Error code 134
make: Fatal error: Command failed for target `run'
% 


5. Stacktrace
-------------
% dbx -V /j2sdk1.4.1_01/bin/java ./core
S1SCC 8 Dbx Debugger 7.1 EA1 2002/11/07
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.0' in your .dbxrc
Reading java
core file header read successfully
Reading ld.so.1
Reading libthread.so.1
Reading libdl.so.1
Reading libc.so.1
Reading libc_psr.so.1
Reading libjvm.so
Reading libCrun.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libm.so.1
Reading libw.so.1
Reading libmp.so.2
Reading libhpi.so
Reading libverify.so
Reading libjava.so
Reading libzip.so
Reading en_US.ISO8859-15.so.2
detected a multithreaded program
t@1 (l@1) terminated by signal ABRT (Abort)
0xff369764: __sigprocmask+0x0008:       jmp     %o7 + 0x8
(dbx) where
current thread: t@1
=>[1] __sigprocmask(0x0, 0xffbed308, 0x0, 0x0, 0x0, 0x0), at 0xff369764 
  [2] _resetsig(0xff36bf60, 0x0, 0x0, 0x28710, 0xff37e000, 0x0), at 0xff35e970 
  [3] _sigon(0x28710, 0xff385930, 0x6, 0xffbed3dc, 0x28710, 0x6), at 0xff35e110 
  [4] _thrp_kill(0x0, 0x1, 0x6, 0xff37e000, 0x1, 0xff2c0440), at 0xff361150 
  [5] raise(0x6, 0x0, 0x0, 0xffffffff, 0xff2c03ac, 0x4), at 0xff24b944 
  [6] abort(0xff2bc000, 0xffbed530, 0x0, 0xfffffff8, 0x4, 0xffbed551), at 0xff2358e4 
  [7] os::abort(0x1, 0xfe3ed105, 0xffbed5d0, 0x0, 0xfe4394f0, 0xfe33a210), at 0xfe33ba30 
  [8] os::handle_unexpected_exception(0x2c6f0, 0xb, 0xfe3595b8, 0xffbee308, 0xb, 0x0), at 0xfe33a280 
  [9] JVM_handle_solaris_signal(0xfe3595b8, 0xffbee308, 0xffbee050, 0x4000, 0x4314, 0x0), at 0xfe33ded0 
  [10] __sighndlr(0xb, 0xffbee308, 0xffbee050, 0xfe33c7f8, 0x287b4, 0x287a4), at 0xff36b824 
  [11] sigacthandler(0xb, 0x28710, 0x0, 0x0, 0x0, 0xff37e000), at 0xff3684d8 
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [12] Relocator::rc_instr_len(0xffbee52c, 0xb064, 0x3cca2c, 0x0, 0xfe424000, 0x0), at 0xfe3595b8 
  [13] ChangeWiden::handle_code_change(0x2be652c, 0xffbee52c, 0x0, 0x0, 0x0, 0x0), at 0xfe35ae28 
  [14] Relocator::insert_space_at(0x2be652c, 0xffbee52c, 0xb064, 0x4, 0xffbee560, 0x2c6f0), at 0xfe35937c 
  [15] GenerateOopMap::rewrite_load_or_store(0xffbee804, 0xffbee5d8, 0x19, 0x2a, 0x2d3, 0x1463c0), at 0xfe0fc454 
  [16] GenerateOopMap::rewrite_refval_conflict(0xf66a2248, 0xb064, 0x19, 0x0, 0x1, 0x1), at 0xfe0fbfac 
  [17] GenerateOopMap::rewrite_refval_conflicts(0xffbee804, 0x242ea0, 0xa0, 0x131b300, 0x42000000, 0xfa000000), at 0xfe0ceddc 
  [18] GenerateOopMap::compute_map(0x0, 0xf6130c0c, 0x500001, 0x7efefeff, 0x81010100, 0xff00), at 0xfe0c7ed0 
  [19] ResolveOopMapConflicts::do_potential_rewrite(0xffbee914, 0xffbee804, 0x2c6f0, 0xfe424000, 0x0, 0x35c8b0), at 0xfe0c77b0 
  [20] Rewriter::rewrite_method(0x2c890, 0x0, 0xfe424000, 0x2c6f0, 0xffbee914, 0xffbee918), at 0xfe0c66c4 
  [21] Rewriter::rewrite(0x8e7d8, 0x2c6f0, 0xfe443600, 0x2c6f0, 0x2c6f0, 0x0), at 0xfe0c59ec 
  [22] instanceKlass::link_class_impl(0xffbeeae4, 0x2c6f0, 0x1, 0x2c6f0, 0xb8408, 0xffbef08c), at 0xfe0c4074 
  [23] instanceKlass::link_class(0xf613ea90, 0x2c6f0, 0xffbeec60, 0x2c6f0, 0x2c77c, 0xf2043690), at 0xfe0c37fc 
  [24] instanceKlass::initialize_impl(0xffbeeca0, 0x2c6f0, 0xffbeee94, 0x2cd00, 0x2c6f0, 0x280), at 0xfe0d3e3c 
  [25] instanceKlass::initialize(0xf613ea90, 0x2c6f0, 0x2c6f0, 0xfe424000, 0xfe0aa300, 0xfe0aa300), at 0xfe0d3dc0 
  [26] InterpreterRuntime::_new(0x2c6f0, 0xf6118338, 0x2, 0x8, 0xf6118338, 0x0), at 0xfe0dcdf0 
  [27] 0xfa415854(0xffbeee28, 0x0, 0x0, 0xfa4104b0, 0x35d1c8, 0xffbeedc8), at 0xfa415853 
  [28] 0xfa400118(0xffbeeeb4, 0xffbef0b0, 0xa, 0xf6118520, 0xfa40aae0, 0xffbeefb0), at 0xfa400117 
  [29] JavaCalls::call_helper(0xffbef0a8, 0xffbeef68, 0xffbeefa8, 0x2c6f0, 0x2c6f0, 0x5c00), at 0xfe0d4c10 
  [30] jni_invoke_static(0x1, 0xffbef0a8, 0x0, 0x0, 0xb8408, 0xffbef08c), at 0xfe0ecb20 
  [31] jni_CallStaticVoidMethod(0x2c77c, 0x2d10c, 0xb8408, 0x2d11c, 0x2c77c, 0xf2043690), at 0xfe189dc8 
  [32] main(0x4, 0x0, 0xb8408, 0x2d11c, 0x0, 0x280), at 0x1237c 
(dbx) 



6. java -verify
---------------
 The problem can be provoked by calling "-verify" on the servlet code
 "jsp_GroupDetail1045679866561.class" alone:


% make verify
/j2sdk1.4.1_01/bin/java  -verify -classpath .:servlet.jar:servlet_jsp.jar:log4j-1.2.7.jar:standard.jar:jstl.jar jsp_GroupDetail1045679866561

Unexpected Signal : 11 occurred at PC=0xFE3595B8
Function=[Unknown. Nearest: JVM_handle_solaris_signal+0x1BF7C]
Library=/j2sdk1.4.1_01/jre/lib/sparc/client/libjvm.so

Current Java thread:

Dynamic libraries:
0x10000         /j2sdk1.4.1_01/bin/java
0xff350000      /usr/lib/libthread.so.1
0xff390000      /usr/lib/libdl.so.1
0xff200000      /usr/lib/libc.so.1
0xff330000      /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
0xfe000000      /j2sdk1.4.1_01/jre/lib/sparc/client/libjvm.so
0xff2d0000      /usr/lib/libCrun.so.1
0xff1d0000      /usr/lib/libsocket.so.1
0xff100000      /usr/lib/libnsl.so.1
0xff0d0000      /usr/lib/libm.so.1
0xff300000      /usr/lib/libw.so.1
0xff0b0000      /usr/lib/libmp.so.2
0xff070000      /j2sdk1.4.1_01/jre/lib/sparc/native_threads/libhpi.so
0xff040000      /j2sdk1.4.1_01/jre/lib/sparc/libverify.so
0xfe7c0000      /j2sdk1.4.1_01/jre/lib/sparc/libjava.so
0xff020000      /j2sdk1.4.1_01/jre/lib/sparc/libzip.so
0xfe4e0000      /usr/lib/locale/en_US.ISO8859-15/en_US.ISO8859-15.so.2

Local Time = Fri Feb 28 14:21:57 2003
Elapsed Time = 64
#
# HotSpot Virtual Machine Error : 11
# Error ID : 4F530E43505002E6 01
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode)
#
# An error report file has been saved as hs_err_pid5640.log.
# Please refer to the file for further information.
#
*** Error code 134
make: Fatal error: Command failed for target `verify'
%


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

PUBLIC COMMENTS Java VM crashes w/ SEGV when trying to execute Java code > 64 kB. This is the case for 1.3.1_07 and 1.4.1_01.
10-06-2004

EVALUATION Not a mantis issue, If this needs to be addressed in previous JDK's then an escalation will need to be filed to get fix. otherwise, please see Suggested Fix for back porting.. ###@###.### 2003-03-05 Will be closing as will not fix for older releases unless escalated. I have passed this on the JPSE team for eval. I have not heard back if they want to backport suggested fix proposed. ###@###.### 2003-03-12
12-03-2003

SUGGESTED FIX This bug looks just like bug 4700707, which I fixed last August. There was a "slop" variable and a missing check for null when allocating bytecodes for methods which were close to the 64kb limit (and had jsr's that caused the code to need to be rewritten). In the suggested fix section for bug 4700707 has a patch which you should apply for this bug and let us know if it solves this problem. This patch is a minimal part of the code change. If a method needs further rewriting which will cause it to go over the 64k limit, there is more code that will throw verify error instead of asserting. ###@###.### 2003-03-03
03-03-2003