簡體   English   中英

java SSLException: 在接收對等方的 close_notify 之前關閉入站可以安全地忽略嗎?

[英]Can java SSLException: closing inbound before receiving peer's close_notify be safely ignored?

我正在使用MySQL Connector/J 5.1.47 (2018-08-17)從 java 1.8 應用程序連接到 MySQL 5.7 服務器。 我知道這是一個舊版本的庫,但我需要使用它,因為我還需要從同一個 java 應用程序連接到 MySQL 5.5 數據庫,這是我知道的支持 5.5 和 5.7 的最后一個版本. 我連接到兩個數據庫都沒有問題,但是當我嘗試關閉其中一個連接時,我的日志中出現了以下錯誤:

Wed Aug 25 10:48:03 IST 2021 WARN: Caught while disconnecting...

EXCEPTION STACK TRACE:

** BEGIN NESTED EXCEPTION ** 

javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer's close_notify

STACKTRACE:

javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
    at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:726)
    at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:705)
    at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:2249)
    at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4232)
    at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1472)
    at ie.myapp.Database.closeConnection(Database.java:115)

** END NESTED EXCEPTION **

請注意,這里沒有拋出異常。 此警告正在java.sql.Connection.close()調用中的某處打印。 周圍有對此錯誤的引用,但我遇到的一個常見建議是在連接上禁用 SSL(我不能/不會這樣做)。

在任何情況下,根據關於MySQL 連接器庫的拉取請求的對話,我的理解是警告被抑制或從庫的更高版本中刪除,這表明警告是無害的?

此外,我已經編寫了一些測試來確認在關閉與我的數據庫的連接后,數據庫實際上沒有用戶/會話的記錄,例如select id, user... from information_schema.processlist作為粗略檢查沒有資源在數據庫上泄漏。

所以,我的問題是:任何了解此警告(或了解可能導致此警告的原因)的人都可以建議我忽略它是否會產生任何副作用? (除了用那個警告填充我的日志)。

實際上,這是 Java 11 上 MySQL 驅動程序的一個問題。此問題已在 Connector/J 版本 8.0.16 中修復。 此 SSLException 日志在此升級后未出現。 錯誤參考: https : //bugs.mysql.com/bug.php?id=93590

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM