You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Charles E. Rolke (Jira)" <ji...@apache.org> on 2021/04/13 00:06:00 UTC

[jira] [Created] (PROTON-2373) [c] Raw connection fast-close yields variable event stream

Charles E. Rolke created PROTON-2373:
----------------------------------------

             Summary: [c] Raw connection fast-close yields variable event stream
                 Key: PROTON-2373
                 URL: https://issues.apache.org/jira/browse/PROTON-2373
             Project: Qpid Proton
          Issue Type: Bug
          Components: proton-c
    Affects Versions: proton-c-0.34.0
            Reporter: Charles E. Rolke


h3. Description

A raw connection client sends a TCP FIN immediately after opening a connection and sending five bytes of data. The raw connection does not send the same sequence of events to qpid-dispatch router for every repeat of this test.
h3. Reproducer and Discussion

For background see DISPATCH-1878 For an illustration of this issue see file DISPATCH-1878 attachment_fail-pn-raw-closed-before-ingress-stream-set-up.svg
h3. Normal case

The Dispatch TCP adaptor is expecting to see 1) PN_RAW_CONNECTION_CONNECTED followed by 2) PN_RAW_CONNECTION_WAKE. The WAKE will cause a few code trips through handle_incoming_impl function where it waits for the ingress delivery and stream message to get set up. During listener connection setup handle_incoming expects pn_raw_connection_is_read_closed() to return false.
h3. Failed case

In the failed case the first events are 1) PN_RAW_CONNECTION_CONNECTED and 2) PN_RAW_CONNECTION_NEED_WRITE_BUFFERS. The first call to handle_incoming sees pn_raw_connection_is_read_closed() return true. This causes the receive listener connection to run state handling before the ingress delivery and stream messaage is set up.
h3. Design Issues

What is the expected, and guaranteed, sequence of events for a raw connection that is gets closed immediately?

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org