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]

Reply via email to