Would someone please review a PR for IGNITE-9290 [1] ? I've add some fixes to PR #4556 [2] and TC looks fine [3]. Now, * Explicit lock unlocking moved to background system pool thread. * Exchange future doesn't care for unlocking at all. * MvccManager discovery listener is responsible for triggering unlocking on certain discovery events * Also, ExchangeFuture.OnLeft() method was called twice in some cases. I've fix this as well.
[1] https://issues.apache.org/jira/browse/IGNITE-9290 [2] https://github.com/apache/ignite/pull/4556 [3] https://ci.ignite.apache.org/viewLog.html?buildId=1669225&tab=buildResultsDiv&buildTypeId=IgniteTests24Java8_RunAll On Thu, Aug 16, 2018 at 10:31 AM Alexey Goncharuk < [email protected]> wrote: > 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 <[email protected] > >: > > > 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 > > > -- Best regards, Andrey V. Mashenkov
