2b16d9f670
Related issue: #2093 Motivation: When a channel with SslHandler is closed with pending writes (either unencrypted or encrypted), SslHandler.channelClosed() attempts to acquire a lock and fail the futures of the pending writes. If a user added a listener to any of the failed futures and the listener attempts to write something, it will make SslHandler.handleDownstream() invoked, which also attempts to acquire the same lock. Because the lock is non-reentrant, even if these two lock acquisitions are taking place in the same thread, the second attempt will block for ever. Modification: Do not fail the futures while holding a lock. Notify them after releasing the lock. Result: One less dead lock |
||
---|---|---|
.. | ||
assembly | ||
javadoc | ||
main | ||
site | ||
test |