[ 
https://issues.apache.org/jira/browse/CAMEL-24545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18108924#comment-18108924
 ] 

mustafa kamal commented on CAMEL-24545:
---------------------------------------

A PR with the fix https://github.com/apache/camel/pull/25842

> Camel Shutdown Locked State With ZookeeprCluster Service
> --------------------------------------------------------
>
>                 Key: CAMEL-24545
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24545
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-zookeeper, camel-zookeeper-master
>    Affects Versions: 4.22.1, 4.18.5
>         Environment: One ZK instance and one camel instance running 
> ZooKeeperClusterService you need to use the main branch or any fix branch as 
> this PR didn't span into a released version. 
>            Reporter: mustafa kamal
>            Priority: Major
>              Labels: Deadlock
>         Attachments: dump.txt
>
>
>  During shutdown, Camel's ClusteredRoutePolicy.onRemove and the Curator 
> leader selector thread both run concurrently  because some routes keep the 
> shutdown window open long enough. These two threads acquire the same two 
> locks in opposite order, causing a classic deadlock that permanently hangs 
> the JVM.
> You can check the attached Thread Dump to see the technical level of the 
> issue more.
>  
> Possible fix is to surround `fireLeadershipChangedEvent((CamelClusterMember) 
> null);` line 154 in `ZooKeeperClusterView` class, with `if 
> (!isStoppingOrStopped())` that will solve the dead lock issue 
> Another issue it solved the unnecessary firing of the Leadership Change event 
> because on stopping/shutting down the view all the registered listeners will 
> be removed so any reaction they need to do should be before stopping the view 
> because stopping the view is not as the same as Losing the Leadership Lock so 
> that's more of an enhancement than breaking functionality. 
>  
> To reproduce the issue run the application wait until it's the Leader by 
> acquiring the lock in ZK then shutting down the application, not all routes 
> will produce the issue some routes have a long enough shutdown windows that 
> allows the Dead Lock to happen 
>  
> This issue is related to the PR [https://github.com/apache/camel/pull/25611] 
> for ticket https://issues.apache.org/jira/projects/CAMEL/issues/CAMEL-24457



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

Reply via email to