Kato Kaito created QPID-8791:
--------------------------------
Summary: [Broker-J] An incomplete inbound TLS record can cause
repeated rescheduling
Key: QPID-8791
URL: https://issues.apache.org/jira/browse/QPID-8791
Project: Qpid
Issue Type: Bug
Components: Broker-J
Affects Versions: qpid-java-broker-10.1.1
Reporter: Kato Kaito
After the TLS handshake has completed, unwrap() can return BUFFER_UNDERFLOW
while the handshake status remains NOT_HANDSHAKING. However,
NonBlockingConnectionTLSDelegate.needsWork() checks only whether the handshake
status differs from NEED_UNWRAP, so it returns true even though processing
requires additional network data.
When pending output has fully drained, NonBlockingConnection.doWork() sees the
non-empty input buffer and calls notifyWork(). On subsequent passes, the
non-blocking socket read returns 0, leaving the buffered data unchanged, and
the connection is rescheduled again. This can continue without considering
socket read readiness until the remaining bytes arrive or the connection is
closed.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]