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: [email protected]
For additional commands, e-mail: [email protected]