JDK-6571563 : Bus error in libzip.so; related to si_errno=Stale NFS file handle
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.util.jar
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris
  • CPU: sparc
  • Submitted: 2007-06-20
  • Updated: 2010-08-19
  • Resolved: 2007-11-01
Related Reports
Relates :  
Description
This happened running a version of jtreg test
	test/com/sun/jdi/RedefineClearBreakpoint.sh
that has been modified so that the debuggee never completes.
I have run this test many many times on solsparc, lin32 and win32
and have only seen this crash once on solsparc.
Here is the crashing thread from the hs_err file, which is attached.

Note that msg about Stale NFS file handle in the siginfo line.

;; Using jvm: /net/gtee.sfbay.sun.com/export/gtee/results/JDK7/NIGHTLY/VM/JDK/service_hs_baseline/solaris-sparcv9/jre/lib/sparc/server/libjvm.so
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGBUS (0xa) at pc=0xfcbacf1c, pid=22573, tid=2
#
# Java VM: Java HotSpot(TM) Tiered VM (20070615093846.dcubed.service_hs_b14_merge.3-fastdebug mixed mode solaris-sparc)
# Problematic frame:
# C  [libzip.so+0xcf1c]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x00049400):  JavaThread "main" [_thread_in_native, id=2, stack(0xfcb00000,0xfcb80000)]

siginfo:si_signo=SIGBUS: si_errno=Stale NFS file handle, si_code=3 (BUS_OBJERR), si_addr=0xfa7eb1d9;; 

Registers:
 O0=0x00153eb0 O1=0x00000001 O2=0x000940a8 O3=0xfd6609fc
 O4=0xff2e8288 O5=0xff2f09b0 O6=0xfcb7c090 O7=0xfcbacee0
 G1=0x00000000 G2=0x00072400 G3=0x0004e3d8 G4=0xfedea8b4
 G5=0xfed61280 G6=0x00000000 G7=0xff362400 Y=0x00000000
 PC=0xfcbacf1c nPC=0xfcbacf20


Top of Stack: (sp=0xfcb7c090)
0xfcb7c090:   fa7eb1bd fe599552 007c7800 00000000
0xfcb7c0a0:   00000000 000f7140 00000001 00000000
0xfcb7c0b0:   001dd250 001e7214 00153eb0 fa7d4000
0xfcb7c0c0:   0016b1bd 00154000 fcb7c0f0 fcba22b4
0xfcb7c0d0:   00051148 0005b000 00000000 ef93ea58
0xfcb7c0e0:   00000000 d600c820 d600c820 d600c820
0xfcb7c0f0:   0000002f 4126c9f4 0000039f 001e7214
0xfcb7c100:   4126cb2e 001e46a0 00002b74 00000add 

Instructions: (pc=0xfcbacf1c)
0xfcbacf0c:   f8 06 60 04 fa 06 20 20 a0 06 c0 1c a0 24 00 1d
0xfcbacf1c:   ec 0c 20 1c c2 0c 20 1d e8 0c 20 1e ea 0c 20 1f 
;; 00000000fcbacf0c f8 06 60 04 fa 06 20 20 a0 06 c0 1c a0 24 00 1d
;; ---------------
;; 00000000fcbacf1c ec 0c 20 1c             ldub  [ %l0 + 0x1c ], %l6
;; 00000000fcbacf20 c2 0c 20 1d             ldub  [ %l0 + 0x1d ], %g1
;; 00000000fcbacf24 e8 0c 20 1e             ldub  [ %l0 + 0x1e ], %l4
;; 00000000fcbacf28 ea 0c 20 1f             ldub  [ %l0 + 0x1f ], %l5
;; 
Stack: [0xfcb00000,0xfcb80000],  sp=0xfcb7c090,  free space=496k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libzip.so+0xcf1c];;  newEntry+0x40
C  [libzip.so+0x22bc]  ZIP_GetEntry+0xe4;;  ZIP_GetEntry+0xe4
C  [libzip.so+0x2734]  Java_java_util_zip_ZipFile_getEntry+0xc4;;  Java_java_util_zip_ZipFile_getEntry+0xc4
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::StubRoutines (1)
V  [libjvm.so+0x8480cc];;  void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x9d8
V  [libjvm.so+0x9db794];;  JVM_DoPrivileged+0x1640
C  [libjava.so+0xf510]  Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2+0x1c;;  Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2+0x1c
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::StubRoutines (1)
V  [libjvm.so+0x8480cc];;  void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x9d8
V  [libjvm.so+0x846cc4];;  void JavaCalls::call_special(JavaValue*,Handle,KlassHandle,symbolHandle,symbolHandle,Handle,Thread*)+0x224
V  [libjvm.so+0x10d34b0];;  instanceKlassHandle SystemDictionary::load_instance_class(symbolHandle,Handle,Thread*)+0x610
V  [libjvm.so+0x10cc4f0];;  klassOop SystemDictionary::resolve_instance_class_or_null(symbolHandle,Handle,Handle,Thread*)+0x1dac
V  [libjvm.so+0x10c6c00];;  klassOop SystemDictionary::resolve_or_null(symbolHandle,Handle,Handle,Thread*)+0x2dc
V  [libjvm.so+0x10c5854];;  klassOop SystemDictionary::resolve_or_fail(symbolHandle,Handle,Handle,bool,Thread*)+0x54
V  [libjvm.so+0xa65c3c];;  _jclass*find_class_from_class_loader(JNIEnv_*,symbolHandle,unsigned char,Handle,Handle,unsigned char,Thread*)+0x64
V  [libjvm.so+0x9c99a4];;  JVM_FindClassFromClassLoader+0xd04
C  [libjava.so+0xdc74]  Java_java_lang_Class_forName0+0x130;;  Java_java_lang_Class_forName0+0x130
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::StubRoutines (1)
V  [libjvm.so+0x8480cc];;  void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x9d8
V  [libjvm.so+0xfcb2e4];;  oop Reflection::invoke(instanceKlassHandle,methodHandle,Handle,bool,objArrayHandle,BasicType,objArrayHandle,bool,Thread*)+0x47bc
V  [libjvm.so+0xfdd3e0];;  oop Reflection::invoke_method(oop,Handle,objArrayHandle,Thread*)+0xe00
V  [libjvm.so+0xa764d8];;  JVM_InvokeMethod+0xd34
C  [libjava.so+0x10b5c]  Java_sun_reflect_NativeMethodAccessorImpl_invoke0+0x18;;  Java_sun_reflect_NativeMethodAccessorImpl_invoke0+0x18
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::StubRoutines (1)
V  [libjvm.so+0x8480cc];;  void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x9d8
V  [libjvm.so+0x8937d0];;  void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0xac0
V  [libjvm.so+0x8eea90];;  jni_CallStaticVoidMethod+0xad8
C  [jstack+0x2494]  JavaMain+0x59c

Comments
EVALUATION This seems similar to 6467599. In that case, siginfo reports Connection reset by peer, instead of the Stale NFS handle reported here. Both report the same problematic frame in libzip. This is suggestive of the age-old problem of an opened jar file being changed behind the back of the JVM, where "inaccessible" is a kind of "changed."
20-06-2007