[ 
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)

Reply via email to