Skip to content

Commit

Permalink
fix cluster locks test
Browse files Browse the repository at this point in the history
  • Loading branch information
martinfurmanski committed Mar 31, 2017
1 parent b08148b commit fb7d355
Showing 1 changed file with 19 additions and 5 deletions.
Expand Up @@ -26,6 +26,8 @@
import org.junit.rules.RuleChain;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;

import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction;
Expand Down Expand Up @@ -87,8 +89,9 @@ public void lockCleanupOnModeSwitch() throws Throwable
}

@Test
public void locksFailingOnSlavesMustHaveDescriptiveMessage() throws Throwable
public void oneOrTheOtherShouldDeadlock() throws Throwable
{
AtomicInteger deadlockCount = new AtomicInteger();
HighlyAvailableGraphDatabase master = cluster.getMaster();
Node masterA = createNodeOnMaster( testLabel, master );
Node masterB = createNodeOnMaster( testLabel, master );
Expand All @@ -111,15 +114,26 @@ public void locksFailingOnSlavesMustHaveDescriptiveMessage() throws Throwable
latch.countDown();
tx.acquireWriteLock( masterB );
}
catch ( DeadlockDetectedException e )
{
deadlockCount.incrementAndGet();
}
});
masterTx.setDaemon( true );
masterTx.start();
latch.await();

// This should deadlock
expectedException.expect( DeadlockDetectedException.class );
transaction.acquireWriteLock( slaveA );
try
{
transaction.acquireWriteLock( slaveA );
}
catch ( DeadlockDetectedException e )
{
deadlockCount.incrementAndGet();
}
masterTx.join();
}

assertEquals( 1, deadlockCount.get() );
}

@Test
Expand Down

0 comments on commit fb7d355

Please sign in to comment.