2016-09-19 49 views
0

請參閱here爲原始問題。瞭解一個hs_err_pid <n>.log文件

我正在寫一個Java服務,利用碼頭的Webserving和SQLite數據庫存儲。來源可用here

我發現,雖然服務從我的筆記本電腦運行穩定,在部署到EC2實例,將在輸出沒有明顯的錯誤消息,崩潰的地方,從開機1小時,天至2天。我給啓動電話添加了一些日誌選項(-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=...),並得到了this crashlog

這是我第一次遇到這樣的文件,初看起來似乎並不明顯,它的哪一部分是指實際的錯誤,哪些部分只是給出了上下文信息,所以我會非常感謝任何理解它的優秀指南。特別是,它看起來像試圖與ZipFiles交互,我沒有在我的項目中使用它。

  • This answer鏈接到一個blog這是在回答-1'd評論
  • This answer鏈接到一些Oracle documentation,我通常會在喜出望外,但它似乎是一個普通的調試指南 - 可以」看不到任何東西在那裏大約hs_err文件(儘管這可能會成爲進一步閱讀清晰)
  • This result from Google聲稱「你執行任何Java代碼,JVM不應該崩潰。如果是的話,它僅僅是一個JVM錯誤。因此,嘗試用Sun記錄下所有細節的缺陷,並希望他們能夠看清楚這一點。「,這聽起來非常絕對 - 我認爲這是不太可能的我的小玩具項目發現了一個JVM錯誤!

回答

0

看着crashlog,看起來你正在解壓的東西(jar文件或zip文件)導致JVM崩潰。

如果啓動期間發生,你可以添加以下到您的JVM命令行,看看哪個文件它可能工作。在Java_java_util_zip_ZipFile_getEntry

java -verbose:class [more command line] 
0

崩潰最常引起的併發訪問.zip文件,例如當打開的實例存在時,文件被覆蓋。

JDK-8042197JDK-8031691瞭解詳情。

順便說一句,至於原來的問題,這裏是一個presentation在JVM崩潰轉儲分析。