[
https://issues.apache.org/jira/browse/IGNITE-9290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16728261#comment-16728261
]
Andrew Mashenkov commented on IGNITE-9290:
------------------------------------------
[~agoncharuk], I've removed exchangerUpdateHeartbeat() from async call.
I'm not sure if using system pools can cause deadlocks in that case.
Do we have any thread pool for cluster maintenance tasks?
Or should I create a separate GridWorker for this regarding Andrey's note
above? What is common practice?
Also, as a further improvement, we can allow "no more than one"
removeExplicitNodeLocks task in fly in case of several nodes leavings.
> Make remove explicit locks async when node left.
> ------------------------------------------------
>
> Key: IGNITE-9290
> URL: https://issues.apache.org/jira/browse/IGNITE-9290
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Reporter: Andrew Mashenkov
> Assignee: Andrew Mashenkov
> Priority: Critical
> Labels: deadlock, iep-25
> Fix For: 2.8
>
>
> GridCacheMvccManager.removeExplicitNodeLocks() run synchronously in discovery
> and exchange threads. This introduce unnecessary delays in discovery and
> exchange process.
> Also, this may cause a deadlock on node stop if user transaction holds an
> entry lock and awaits some Ignite manager response (e.g. cache store or DR or
> CQ), as manager stops right after last exchange has finished so managers
> can't detect node is stopping.
>
> [1]
> [http://apache-ignite-developers.2346864.n4.nabble.com/Synchronous-tx-entries-unlocking-in-discovery-exchange-threads-td33827.html]
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)