2011-07-08 45 views
3

由於Java更新25,VM偶爾會因內部錯誤而崩潰。與以前的版本< 25它工作正常。根據發行說明,熱點編譯器在更新25中進行了修改。它是否會產生導致崩潰的缺陷代碼?如果使用-Xint關閉JIT編譯器,它不會崩潰。我在這裏提交了一個bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7054478爲什麼Java VM更新25會因內部錯誤而崩潰

如何解釋日誌文件以找出發生崩潰的位置。我無法識別Java代碼中發生的行。

+0

嘗試使用'-client'和'-server'玩。這兩個熱點不同。 –

+0

你使用任何本機代碼? –

+0

發佈崩潰日誌。它可能與http://stackoverflow.com/questions/6344546/java-6-update-25-vm-crash-insufficient-memory – MRalwasser

回答

1

原因是內部斷言失敗 - JVM未處於預期的狀態。這是一件好事,因爲它避免了傳播錯誤,但這是一件壞事,因爲它不會告訴你如何繞過它。

如果像-client或-server這樣的簡單技巧不起作用,那就考慮一個不同的JVM。

這將允許您在Oracle查看您的bug時工作。雖然這是不重要的,所以需要一段時間。

+0

謝謝,使用另一個VM是個好主意,我會檢查它。 – Adam

+0

@Adam什麼解決了你的問題? –

+0

嗯,實際的問題沒有解決,但使用JRockit時,問題消失了,並且在Oracles當前的Java 1.7.0_25(實際上已經在一些以前的版本中)它似乎是固定的。這個問題的原因是一些虛擬機內部錯誤,我至少認爲是這樣,現在似乎已經修復了。 – Adam

2

我搜索了錯誤數據庫中的字符串「來自topLevelExceptionFilter的意外結果」,並且還有三個其他匹配。它們似乎都是關於通過JNI邊界傳回的本地代碼中的意外異常。

是否與您的應用程序有關?

+0

感謝提示,但我們沒有使用任何本機代碼。 – Adam

相關問題