Ubuntu

Wildfly 8.1.0 最終凍結(永久保持連接/通道在塊中關閉)

  • April 18, 2017

我剛剛將一個應用程序從 JBoss 7.1.1 遷移到 Wildfly 8.1.0 Final。但現在不時(比如每 2 天)Wildfly 凍結,我必須重新啟動它。我的應用程序基本上是帶有 Resteasy 的 EJB/JPA/JAX-RS。

凍結是指對 Wildfly 的每次 HTTP 訪問都會永遠等待。我懷疑只有 Undertow 被凍結,因為我可以在我的應用程序日誌中看到計劃的任務正在執行,儘管這些都與網路無關。

我還在我的日誌中註意到以下錯誤:“響應已送出,無法處理異常”,由 IOException “通道在塊中關閉,如果您嘗試寫入分塊數據,您無法關閉通道,直到它全部完成書面”。

伺服器是在 Azure 上執行的 Ubuntu VM。“物理記憶體”和“硬碟”空間都可以。根據 Wildfly 管理中的 JVM 執行時,堆、非堆和執行緒的使用都很好。

我唯一注意到的是,當我“netstat -aln”時,我永遠建立了許多連接。我每天只有不到 100 個客戶端,但現在我在埠 8080 上建立了 2K 個連接。

我可以做些什麼來更好地診斷和解決這個問題?

最好的問候, Renan

更新:這確實是 8.1.0 上為 8.2.0 修復的錯誤,請參閱我的答案以及在 JbossDeveloper 打開的問題連結。

我想分享我作為 Wildfly 8.1 開發人員/架構師的經驗

幾天前,我在 Windows/Eclipse 上從 7.1.1 遷移到 8.1。我還注意到一些不穩定因素;開發團隊的一名成員進行了遷移,並抱怨 eclipse 崩潰/與 7.1.1 的行為不同。另一位團隊成員仍在開發 Wildfly 8.0;似乎以前的版本更穩定。

JBOss 會告訴您 Wildfly 不是生產應用伺服器;這是出於開發目的。但我認為你指的是一些嚴重的錯誤/與我的 sucpicions 趨同/沒有任何真實的事實,也沒有回答你的問題。

您應該將您的文章直接轉發到 JBoss 論壇,以便確保 Wildfly 團隊調查該問題並希望修復將成為 8.2 版本的一部分。

我在 Spring 4.1.0 和 JSF 2.0 和 JDK 8.0_u25 中使用 wildfly 8.0 final 我遇到了同樣的異常: UT005013:發生 IOException:java.io.IOException:UT000029:如果您嘗試過,通道已關閉中間塊寫入分塊數據,直到全部寫入後才能關閉通道。

而且我的伺服器 CPU 處理每次發生異常時增加 25%。Alhumdulillah 現在我解決了我的問題。

現在我正在使用:Wildfly 8.2.0 Final With Spring 4.1.0 and JSF 2.0 & JDK 8.0_u25

Wildfly 8.2.0 解決了我的 CPU 處理問題我觀察了我的伺服器將近 8 天然後我意識到當主機(客戶端/使用者)向伺服器發送一些請求時需要一些時間來計算/伺服器響應時間在該使用者關閉他的瀏覽器視窗或在從伺服器獲得響應之前註銷。當伺服器完成他的處理然後嘗試向他的特定主機/客戶端請求發送響應時,由於客戶端關閉了瀏覽器視窗而發生 IO 異常。

我希望這會幫助你

引用自:https://serverfault.com/questions/605636