Marco Geri created PROTON-2900:
----------------------------------

             Summary: `IdleTimeoutCheck` not rescheduled after broker's AMQP 
Open frame, causing premature connection closure
                 Key: PROTON-2900
                 URL: https://issues.apache.org/jira/browse/PROTON-2900
             Project: Qpid Proton
          Issue Type: Bug
          Components: protonj2
    Affects Versions: protonj2-1.0.0-M23
            Reporter: Marco Geri
            Assignee: Timothy A. Bish


While testing with BrokerJ 9.2.1 with AMQP 1.0 protocol, I configured the 
broker to request heartbeats every 5 seconds using the setting 
{{{}qpid.port.heartbeatDelay=5{}}}.

However, even with a simple login test (without sending any other messages), 
the connection is closed by the broker after 10 seconds due to inactivity. It 
appears that the client library does not send any idle (heartbeat) frames 
during this time.

After a quick debugging session, it seems that the {{IdleTimeoutCheck}} in the 
{{ProtonEngine}} is scheduled immediately with a timeout of 10 seconds, before 
the AMQP Open frame from the broker is received. The Open frame from the broker 
specifies a 5-second idle timeout, but the {{IdleTimeoutCheck}} is *not* 
rescheduled after this frame is processed.

As a result, the client does not send heartbeat frames within the expected 
timeframe, and the broker closes the connection due to inactivity.

*Note:* I ran the test using BrokerJ version 9.2.1, which includes a fix for 
the {{heartbeatDelay}} parameter (see QPID-8680).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to