[ https://issues.apache.org/jira/browse/IGNITE-7090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16345857#comment-16345857 ]
Vladisav Jelisavcic commented on IGNITE-7090: --------------------------------------------- Hi Tim, thank you for the extended effort! Looking at this code, first that springs to my mind is that when you remove node from the waiters, you also need to add permits belonging to this node to the available permits in semaphore state. Second thing, sem0 is created in the same transaction, so no need to update it, you can create it with the modified state (by changing the state first, i.e. checking/removing the node ids and increasing the number of available permits before the semaphore initialization). Let's see if this will bring us closer to the goal. Thanks! > Semaphore Stuck when no acquirers to assign permit > -------------------------------------------------- > > Key: IGNITE-7090 > URL: https://issues.apache.org/jira/browse/IGNITE-7090 > Project: Ignite > Issue Type: Bug > Components: cache, data structures > Affects Versions: 2.1, 2.4 > Reporter: Tim Onyschak > Assignee: Tim Onyschak > Priority: Major > Fix For: 2.5 > > Attachments: SemaphoreFailoverNoWaitingAcquirerTest.java > > > If no acquirers are available to take permit of semaphore, the permit never > gets release and any further acquirerers will wait forever. > On node shut down DataStructuresProcessor.dsMap gets cleared out prior to > event listener being able to execute onNodeRemoved, hence owner is never > cleared out if it was unable to pass to a different acquirer. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)