+7
−10
Loading
When the client's CCS or Finished record had not arrived yet, the TLS 1.2
server handshake caught the Note from readTlsRecordAsync() and returned
normally. The event loops' handshake loop only stops on a Note, so it
called handshake_after_accept() again forever without ever reading the
socket: one worker at 100% CPU per such connection, holding event_mutex
(which also blocks the idle reaper). Enough of them hang the server.
Triggered by any TLS 1.2 client whose second flight is split across
segments (CKE / CCS / Finished arriving separately).
Co-Authored-By:
Claude Opus 5.5 <noreply@anthropic.com>