Artem Shutak created IGNITE-1022:
------------------------------------
Summary: Next scenario hangs
Key: IGNITE-1022
URL: https://issues.apache.org/jira/browse/IGNITE-1022
Project: Ignite
Issue Type: Bug
Reporter: Artem Shutak
Assignee: Semen Boikov
Fix For: sprint-7
There are 2 nodes: one node broadcast closures, second node always restarts.
It hangs on some iteration.
{code}
public class MyTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
public void testName() throws Exception {
Thread thread = null;
Ignite ignite = null;
final CountDownLatch testEndedLatch = new CountDownLatch(1);
try {
ignite = startGrid("mainGrid");
thread = new Thread(new Runnable() {
@Override public void run() {
try {
for (int i = 0; i < 100; i++) {
try (Ignite ignored = startGrid("startedGrid")) {
Thread.sleep(1000);
}
}
}
catch (Exception e) {
// Do nothing.
}
finally {
testEndedLatch.countDown();
}
}
});
thread.start();
while (testEndedLatch.getCount() > 0) {
try {
ignite.compute().broadcast(new IgniteClosure<Set,
Integer>() {
@Override public Integer apply(Set set) {
System.out.println("Hellow world!");
return 1;
}
}, ignite.set("set", new CollectionConfiguration()));
}
catch (IgniteException e) {
// Do nothing.
}
}
}
finally {
assert testEndedLatch.await(30, TimeUnit.SECONDS);
if (thread != null)
thread.join();
if (ignite != null)
ignite.close();
}
}
}
{code}
Stack trace of thread in waiting.
{noformat}
"ignite-#10%pub-mainGrid%@1659" prio=5 tid=0x17 nid=NA waiting
java.lang.Thread.State: WAITING
at sun.misc.Unsafe.park(Unsafe.java:-1)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.getAndPutIfAbsent(GridDhtAtomicCache.java:345)
at
org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager$2.call(CacheDataStructuresManager.java:510)
at
org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor.retry(DataStructuresProcessor.java:1243)
at
org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager.retryPutIfAbsent(CacheDataStructuresManager.java:508)
at
org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager.set0(CacheDataStructuresManager.java:321)
at
org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager.set(CacheDataStructuresManager.java:293)
at
org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor$17.applyx(DataStructuresProcessor.java:1187)
at
org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor$17.applyx(DataStructuresProcessor.java:1185)
at
org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor$13.call(DataStructuresProcessor.java:881)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6124)
at
org.apache.ignite.internal.processors.closure.GridClosureProcessor$2.body(GridClosureProcessor.java:893)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)