Andrey, I agree that most likely this can be done in an async way. There are some nuances, though, because if a node leaves during an ongoing exchange, we should remove the locks in the context of the ongoing exchange and not wait for the next exchange event.
I will take a look at your PR shortly. ср, 15 авг. 2018 г. в 15:57, Andrey Mashenkov <andrey.mashen...@gmail.com>: > Hi Igniters, > > I've found Ignite node tries to unlock tx entries when a node left the > grid. > Ignite do this synchronously in > GridCacheMvccManager.removeExplicitNodeLocks() in discovery and exchange > threads. > > Looks like this can be done in ascync way. > I've made a PR #4565 and seems there is no new test failures [1]. > > I'm not familiar enough with exchange manager code, but looks like we can > scan locked entries more than once per node left event. > Also, it looks possible we can scan locked entries once for several merged > exchange events. > > Thoughts? Any ideas how this can be refactoried? > > [1] > > https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&tab=projectOverview&branch_IgniteTests24Java8=pull%2F4546%2Fhead > > -- > Best regards, > Andrey V. Mashenkov >