嘗試診斷64位Linux機器上一些奇怪的Tomcat 6和/或JVM錯誤:Tomcat進程突然壓碎
OS VERSION:RED HAT企業Linux服務器RELEASE 6.3(聖地亞哥)
SERVER MODEL :VMWARE虛擬平臺()
我正在虛擬機上運行一些應用程序測試並面臨一個奇怪的問題。 在運行2個進程的某些VM上發生此問題:Tomcat應用程序服務器進程(java進程)和監視進程,在一個隨機點上,執行一些隨機小時後,可以在catalina.out(server日誌)失敗(問題犯規同一臺機器上總是發生)的虛擬機:
org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-50100
INFO: Stopping service Catalina
org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
這之後Tomcat進程被shutted下來,執行失敗。 在內存或CPU使用情況下無法看到選擇。 無法在/ var/logs下看到系統消息。
在第一階段,我們懷疑外部信號被殺害我們的Tomcat進程,我們試圖用
-Xrs
標誌的過程中JVM參數,但問題仍然發生。的Java的標誌(
-xrs
)應防止Java運行時環境處理異常信號,SIGSEGV
和SIGABRT
不由加入
xrs
標誌之前,我們看到INFO: Pausing Coyote HTTP/1.1 on http-50100
錯誤發生,因爲結果信號加入`XRS後標記kettle/tomcat的行爲方式與日誌文件中沒有任何錯誤一樣。在相關的進程
運行starce命令給了我們以下的輸出:附
過程12917 - 中斷退出 futex的(0x7f6b9e8ab9d0,FUTEX_WAIT,12918,NULLPANIC:使用帶有143
退出PID 12917我們不能運行
starce -f
來包含所有線程,因爲它會導致我們的應用程序被卡住 但是,使用kill
命令查殺子進程的行爲類似 - 我們看到父進程JVM 以錯誤代碼143退出,我們也看到發送的信號到兒子的過程。我們也在使用java
-XX:+HeapDumpOnOutOfMemoryError
optind爲由於內存不足導致的jvm崩潰創建堆轉儲,但沒有核心轉儲或堆轉儲由於粉碎而被創建。
任何想法?
我不確定他們是否找到解決方案 - 但此線程有類似的聲音問題 - http://comments.gmane.org/gmane.comp。jakarta.tomcat.user/206745 – 2013-04-08 09:01:39
Tomcat是否在崩潰時接收請求?沒有部署的應用程序會崩潰嗎? – fglez 2013-04-10 15:39:37
我已經用信號strace運行我的過程,並得到以下輸出: 1過程24631附加 - 中斷退出 2 --- SIGRT_2(實時信號0)@ 0(0)--- 3 rt_sigreturn( 0x7fe4d8b39850)= 202 4 PANIC:連接的pid 24631退出143關於請求我不確定,實際上在服務器日誌中,我們可以看到一個請求關機的痛處。 – 2013-04-12 07:22:30