Vladimir Ozerov created IGNITE-2671:
---------------------------------------
Summary: Node cannot join topology when cache lock is held.
Key: IGNITE-2671
URL:
https://issues.apache.org/jira/browse/IGNITE-2671 Project: Ignite
Issue Type: Bug
Components: cache
Affects Versions: 1.5.0.final
Reporter: Vladimir Ozerov
Priority: Critical
Fix For: 1.6
The problem is originally reported by Mario:
http://apache-ignite-users.70518.x6.nabble.com/Semaphore-blocking-on-tryAcquire-while-holding-a-cache-lock-td3031.html*Description*
When a lock is held on a cache key, another node cannot join topology. It hangs somewhere on partition exchange future.
*Steps to reproduce*
Run the following code and observe that ">>> STARTED 2" is never printed because we cannot leave Ignition.start() method.
{code}
public static void main(String[] args) {
// Start the first node.
Ignite ignite = Ignition.start(new IgniteConfiguration().setGridName("1"));
System.out.println(">>> STARTED 1");
// Create cache and obtain a lock on it.
CacheConfiguration<String, String> ccfg =
new CacheConfiguration<String, String>().setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
ignite.getOrCreateCache(ccfg).lock("key").lock();
System.out.println(">>> LOCKED");
Ignition.start(new IgniteConfiguration().setGridName("2"));
System.out.println(">>> STARTED 2");
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)