1. WAS 버전 : WAS v7.0 이상
2. OS : Solaris, Linux (Oracle JVM 6.0 사용시)
3. Error 발생 시점 : 운영중에 애플리케이션 jar 파일이 교체/업데이트 되는 경우 WAS 에서 crash 발생
4. Error message :
core 에서 하단의 과이 java.util.zip.ZipFile 관련 stack 확인 가능
Stack: [0xb0c00000,0xb0c80000], sp=0xb0c7c890, free space=498k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libc_psr.so.1+0x700] memcpy+0x2f8
C [libzip.so+0xd19c]
C [libzip.so+0x2380] ZIP_GetEntry+0xe4
C [libzip.so+0x2800] Java_java_util_zip_ZipFile_getEntry+0xc4
j java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J+0
j java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J+0
j java.util.zip.ZipFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+31
j java.util.jar.JarFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+2
j java.util.jar.JarFile.getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;+2
5. 예상 이유 : Oracle JVM 의 java.util.zip.Zipfile 구현의 mmap 사용 구현의 버그
6. 조치 방안 : "-Dsun.zip.disableMemoryMapping=true" 옵션을 추가하여 mmap 사용을 diable
7. 참고 자료
JDK-7129299 : JVM crash issue related to jar files
http://bugs.java.com/view_bug.do?bug_id=7129299
IBM - old/WAS 문제&해결
댓글