[ 
https://issues.apache.org/jira/browse/CAMEL-26865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26865 started by shashank.
----------------------------------------
> camel-cluster - ClusteredRoutePolicy: a route that fails to start when the 
> node takes the leadership is never started again
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26865
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26865
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>            Reporter: shashank
>            Assignee: shashank
>            Priority: Major
>
> When the node takes the leadership, {{ClusteredRoutePolicy}} starts its 
> routes in a loop inside one try block, after it has set its leader flag:
> * a route whose start fails (for example an endpoint that cannot connect yet 
> at takeover) is only logged, and nothing tries again: the leadership is 
> already taken, so only a later leadership change would start it. The node 
> holds the leadership and does not run the route, and no other node runs it 
> either;
> * the routes after it in the loop are not started at all.
> The stop on a leadership loss has the same single try block: a route that 
> fails to stop keeps the routes after it running on a node that is no longer 
> the leader, and stays recorded as started, so it is not started again when 
> the node takes the leadership again.
> {{MasterRoutePolicy}} (CAMEL-26540) and the camel-zookeeper-master consumer 
> (CAMEL-25315) retry a failed start while the node is the leader. A 
> supervising route controller does not help here: it skips the routes that the 
> policy has set to {{autoStartup=false}}.
> Expected: each route is started and stopped on its own; a route that fails to 
> start is tried again while the node is the leader.
> Suggested fix: start and stop each route in its own try block; keep a route 
> that failed to start with the stopped routes and start the stopped routes 
> again after a delay while the node is the leader; record a route that is no 
> longer running after a failed stop as stopped.
> Found with Specula (TLA+ model checked against traces of the real code) and 
> confirmed with tests on the real classes.
> _Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to