2014-01-14 4 views
1

내 개발 환경에 글래스 피시 4를 실행했습니다자바 글래스 피시 넷 충돌

Windows 
java version "1.7.0_40" 
Java(TM) SE Runtime Environment (build 1.7.0_40-b43) 
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode) 

모든 것이 완벽하게 작동합니다.

지난 주에 내가 데비안 리눅스 서버를 실행에 배포 :

java version "1.7.0_25" 
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1~deb7u1) 
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) 

응용 프로그램이 일시적으로 충돌 리눅스 환경에서 실행. 충돌없이 며칠 동안 작동 한 다음 몇 시간 내에 여러 번 충돌합니다. 충돌이 발생하면 glassfish 또는 jvm 로그 파일에 오류 메시지가 나타나지 않고 프로세스가 사라지고 한 경우 jvm.log에 잘린 행이 포함됩니다. 모든 오류가 마지막에 주소가 아닌 동일한 것 *

syslog:Jan 14 13:41:19 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb6ac076730 *** 
syslog.1:Jan 13 19:48:04 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb037835c90 *** 
user.log:Jan 13 19:48:04 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb037835c90 *** 
user.log:Jan 14 13:41:19 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb6ac076730 *** 
user.log.1:Jan 8 10:19:30 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x0000000007974a90 *** 
user.log.1:Jan 8 14:29:11 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00000000082431f0 *** 
user.log.1:Jan 8 14:57:19 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007f805f87f490 *** 
user.log.1:Jan 8 18:23:42 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007eff39829ca0 *** 

그렙 자바 : 내가 지금까지 찾은 유일한 단서는 시스템 로그 및 userlog이 포함되어 있다는 것입니다. 모든 시간은 서버가 추락 한 시간과 일치하므로 사라지는 서버의 원인 인 것 같습니다.

해당 응용 프로그램은 여러 형식의 문서를 받아서 MongoDB에 저장하는 문서 저장 시스템입니다. 가능한 경우 이미지를 JPG 형식으로 렌더링합니다.

Apache PDF 상자 및 Java 고급 이미징을 사용하여 JPG 렌더링을 수행합니다. Spring Framework, SpringData MongoDB 및 Spring Security를 ​​실행합니다. 그러나 jtds를 사용하여 가끔 데이터베이스 액세스를하는 경우는 드뭅니다. 충돌이 발생할 때 데이터베이스 활동이 일어나지 않았다고 확신합니다. 최근에 이미지 재 처리가 수행되었지만 대부분의 충돌이 발생했을 때 성공적으로 완료되었지만 (가장 최근의 충돌에 대해 자세히 확인되지 않고 모든 이미지가 최근 저장된 문서에 대해 생성되고 저장되었습니다). 가장 최근의 문서가 업로드 된 후 50 초가 지나서 충돌이 발생했습니다.

사실 온라인에서 찾은 모든 토론은 C 또는 C++ 프로그램에서 발생했으며 거기에는 의미가 있습니다. 내가 자바 프로그램에서 일어날 수있는 유일한 방법은 JNI (내가 사용하지 않고 어쩌면 내가 사용하고있는 라이브러리 중 일부는 JNI를 사용하지만 그렇지 않다면 그것을 인식하지 못함) 또는 JVM 버그

이 문제의 원인을 좁히려는 사람이 있습니까?

자세한 내용을 보려면 로깅 또는 진단 기능이 있습니까?

현재 내가 생각할 수있는 유일한 사실은 특정 기능을 해제 한 상태에서 애플리케이션을 잠시 실행하려고하는 것입니다 (현재 PDF 상자를 사용하여 PDF 렌더링을 가장 의심스럽게 생각하는 순간) 어떤 기능 조합이 안정적이고 그렇지 않다. 가능하다면 더 확실한 접근법을 택할 것입니다. (그리고 테스트가 효과가 있는지보기 위해 며칠을 기다리지 않아도됩니다!).

+1

제안과 추측 만하지만 내게는 JVM이 문제를 일으키는 것처럼 보입니다. 또한 openjdk를 사용하고 있음을 확인합니다.필자는 항상 오픈 자바를 오라클의 '공식'바이너리로 대체했으며 우분투에서는 그렇게하기가 특히 어렵지 않습니다 (데비안에서도 쉽게 사용 가능할 수 있습니다). Open Java는 Java 표준과 호환되지 않지만 저를 인용하지 마십시오. Oracle Java를 설치할 수 있습니까? – Kerry

+0

고마워, 나는 나 자신에 대해 궁금해했다. 이론적으로 나는 어떤 자바 버전이라도 설치할 수 있도록 컴퓨터에 대한 완전한 접근 권한을 가지고있다. 실제로 나는 내가 설치 한 것을 얻는 것이 완전한 악몽이라는 것을 알았습니다. 나는 또한 인터넷 검색을했고 OpenJDK는 오라클이 사용하는 것과 동일한 HotSpot JVM을 사용하는 것처럼 보였다. –

+0

Tim, 우분투는 다음과 같은 꽤 좋은 안내서입니다 : https://help.ubuntu.com/community/Java 'update-alternatives'를 사용하고 있습니다. 제 생각에는'update-alternatives'는 데비안베이스에서 나온 것이므로 여러분에게 제공 될 것입니다. – Kerry

답변

1

오라클 '공식'바이너리를 설치하고 우분투에서 수행하는 방법에 대한 지침은 here입니다. 데비안 툴인 update-alternatives을 사용하기 때문에 우분투에서 Oracle JRE 설치를 가리킬 수 있습니다.

관련 문제