Serdar Gökay created CAMEL-26114:
------------------------------------
Summary: camel-milo - onTransferFailed tears down the current
connection without checking that it is the one whose transfer failed
Key: CAMEL-26114
URL: https://issues.apache.org/jira/browse/CAMEL-26114
Project: Camel
Issue Type: Bug
Components: camel-milo
Affects Versions: 4.23.0
Reporter: Serdar Gökay
Follow-up of CAMEL-25912, named there as not done.
{{SubscriptionManager.SubscriptionListenerImpl.onTransferFailed()}} calls
{{handleConnectionFailure()}}, which tears down whichever connection the
manager holds at that moment and triggers a rebuild. It does not check that the
subscription whose transfer failed belongs to that connection. When the
listener of an already replaced connection reports a failed transfer late, the
replacement is torn down and rebuilt for nothing, and the consumers of the
connection lose their values once more. This is the same class of defect as the
producer teardown removed by CAMEL-25912, where a write that failed on a
disposed connection tore down its replacement.
Fix: ignore the report when the listener belongs to a connection that was
already disposed, and tear down the connection only when it is the current one.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)