You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Semen Boikov (JIRA)" <ji...@apache.org> on 2015/06/24 08:34:24 UTC
[jira] [Resolved] (IGNITE-1022) Next scenario hangs
[ https://issues.apache.org/jira/browse/IGNITE-1022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Semen Boikov resolved IGNITE-1022.
----------------------------------
Resolution: Fixed
Fixed hang, added test to the suite.
> 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)