Sure, no problem. I created a ticket: https://issues.apache.org/jira/browse/IGNITE-2735
and a PR to resolve this problem. I think this should also fix: IGNITE-1977 but the non-failover test scenario is not good anymore; Best regards, Vladisav On Mon, Feb 29, 2016 at 2:32 PM, Vladimir Ozerov <voze...@gridgain.com> wrote: > Hi, > > I tested your code in multi-node scenario, and semaphore is released fine > when node owning a permit has been closed. In your code sample there is > only one node, and in this case semaphore is not released. I think that > "acquire" method should throw an exception in this case (say, > InterruptedException) as semaphore is no longer accessible when node is > stopped. > > Vladislav, > I know you worked on distributed semaphore. Could you please share your > thoughts on the matter? And would you mind fixing that for a single-node > scenario? > > Vladimir. > > On Sun, Feb 28, 2016 at 11:14 PM, nyname00 <mario.st...@panagenda.com> > wrote: > > > Hi Igniters, > > > > I've got a problem with a semaphore that seems to wait for a permit even > if > > the node is already shut down. This behavior appears in a multi-node > setup > > where i try to shut down all nodes at the same time (using a > poison-pill). > > The code below can be used to reproduce the behavior. You will notice > that > > there is no call on sem1#release() - this is because in my poison-pill > > scenario there seems to be no way to get a handle to sem1. And since I > was > > under the impression that any semaphore gets released by Ignite when the > > node crashes/is shut down, I was expecting an exception on > sem2#acquire(). > > > > Any ideas? Best regards, > > Mario > > > > public static void main(String[] args) { > > Ignite i1 = Ignition.start(new > > IgniteConfiguration().setGridName("1")); > > > > System.out.println(">>> I1 STARTED"); > > IgniteSemaphore sem1 = i1.semaphore("sem1", 1, true, true); > > System.out.println(">>> S1 READ"); > > sem1.acquire(); > > System.out.println(">>> S1 ACQUIRED"); > > > > new Thread(() -> { > > IgniteSemaphore sem2 = i1.semaphore("sem1", 1, true, true); > > System.out.println(">>> S1 READ 2"); > > sem2.acquire(); > > try { > > System.out.println(">>> S1 ACQUIRED 2"); > > } finally { > > sem2.release(); > > } > > }).start(); > > > > try { > > TimeUnit.SECONDS.sleep(2); > > } catch (InterruptedException e) { > > e.printStackTrace(); > > } > > > > System.out.println(">>> I1 CLOSING"); > > i1.close(); > > System.out.println(">>> I1 CLOSED"); > > } > > > > > > > > -- > > View this message in context: > > > http://apache-ignite-users.70518.x6.nabble.com/Semaphore-waiting-for-permit-even-if-node-is-shut-down-tp3232.html > > Sent from the Apache Ignite Users mailing list archive at Nabble.com. > > >