You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/05 14:41:58 UTC
[36/50] [abbrv] ignite git commit: debugging TC hangs
debugging TC hangs
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/71b7b2ac
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/71b7b2ac
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/71b7b2ac
Branch: refs/heads/ignite-comm-balance-master
Commit: 71b7b2acaae86ad89b0d377b3fa58f15e045d2fd
Parents: 012789f
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Sat Nov 26 17:40:37 2016 +0700
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Sat Nov 26 17:40:37 2016 +0700
----------------------------------------------------------------------
.../managers/communication/GridIoManager.java | 6 ++-
.../GridDistributedTxFinishResponse.java | 36 ++++++++++++++++++
.../ignite/internal/util/StripedExecutor.java | 40 ++++++++++++++++++++
3 files changed, 80 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/71b7b2ac/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 60e709c..14dc98b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -30,7 +30,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -59,7 +58,6 @@ import org.apache.ignite.internal.processors.pool.PoolProcessor;
import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
import org.apache.ignite.internal.util.GridBoundedConcurrentLinkedHashSet;
import org.apache.ignite.internal.util.GridSpinReadWriteLock;
-import org.apache.ignite.internal.util.StripedExecutor;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.lang.GridTuple3;
@@ -790,6 +788,10 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
msgC.run();
}
}
+
+ @Override public String toString() {
+ return "Message closure [msg=" + msg + ']';
+ }
};
if (msg.topicOrdinal() == TOPIC_IO_TEST.ordinal()) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/71b7b2ac/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
index 109d665..b922628 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
@@ -86,6 +86,42 @@ public class GridDistributedTxFinishResponse extends GridCacheMessage {
}
/** {@inheritDoc} */
+ @Override public int partition() {
+ /*
+ TODO possible starvation - need to fix sync waits in internal threads.
+ Thread [name="sys-stripe-1-#30%dht.GridCacheColocatedTxExceptionSelfTest1%", id=46, state=WAITING, blockCnt=0, waitCnt=7]
+ Lock [object=o.a.i.i.processors.cache.distributed.dht.GridDhtTxFinishFuture@212874c9, ownerName=null, ownerId=-1]
+ at sun.misc.Unsafe.park(Native Method)
+ 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 o.a.i.i.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:159)
+ at o.a.i.i.util.future.GridFutureAdapter.get(GridFutureAdapter.java:117)
+ at o.a.i.i.processors.cache.distributed.dht.GridDhtTxFinishFuture.onError(GridDhtTxFinishFuture.java:183)
+ at o.a.i.i.processors.cache.distributed.dht.GridDhtTxLocal.finishCommit(GridDhtTxLocal.java:543)
+ at o.a.i.i.processors.cache.distributed.dht.GridDhtTxLocal.commitAsync(GridDhtTxLocal.java:580)
+ at o.a.i.i.processors.cache.transactions.IgniteTxHandler.finishDhtLocal(IgniteTxHandler.java:849)
+ at o.a.i.i.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:728)
+ at o.a.i.i.processors.cache.transactions.IgniteTxHandler.processNearTxFinishRequest(IgniteTxHandler.java:687)
+ at o.a.i.i.processors.cache.transactions.IgniteTxHandler$3.apply(IgniteTxHandler.java:157)
+ at o.a.i.i.processors.cache.transactions.IgniteTxHandler$3.apply(IgniteTxHandler.java:155)
+ at o.a.i.i.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:758)
+ at o.a.i.i.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:363)
+ at o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:287)
+ at o.a.i.i.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:89)
+ at o.a.i.i.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:232)
+ at o.a.i.i.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1212)
+ at o.a.i.i.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:840)
+ at o.a.i.i.managers.communication.GridIoManager.access$2100(GridIoManager.java:110)
+ at o.a.i.i.managers.communication.GridIoManager$6.run(GridIoManager.java:785)
+ at o.a.i.i.util.StripedExecutor$Stripe.run(StripedExecutor.java:362)
+ at java.lang.Thread.run(Thread.java:724)
+ */
+ return Integer.MIN_VALUE;
+ }
+
+ /** {@inheritDoc} */
@Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
writer.setBuffer(buf);
http://git-wip-us.apache.org/repos/asf/ignite/blob/71b7b2ac/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java b/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java
index 2290164..a6161f3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java
@@ -67,6 +67,29 @@ public class StripedExecutor implements ExecutorService {
stripes[i].start();
}
+ // TODO
+ Thread t = new Thread(new Runnable() {
+ @Override public void run() {
+ for (;;) {
+ try {
+ Thread.sleep(10000);
+ }
+ catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ for (Stripe stripe : stripes) {
+ if (stripe.queueSize() > 0)
+ System.out.println(stripe.thread.getName() + " - " + stripe.queueToString());
+ }
+ }
+ }
+ });
+
+ t.setDaemon(true);
+
+ t.start();
+
success = true;
}
catch (Error | RuntimeException e) {
@@ -392,6 +415,8 @@ public class StripedExecutor implements ExecutorService {
*/
abstract int queueSize();
+ abstract String queueToString();
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(Stripe.class, this);
@@ -466,6 +491,11 @@ public class StripedExecutor implements ExecutorService {
}
/** {@inheritDoc} */
+ @Override String queueToString() {
+ return String.valueOf(queue);
+ }
+
+ /** {@inheritDoc} */
@Override int queueSize() {
return queue.size();
}
@@ -522,6 +552,11 @@ public class StripedExecutor implements ExecutorService {
}
/** {@inheritDoc} */
+ @Override String queueToString() {
+ return String.valueOf(queue);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(StripeConcurrentQueueNoPark.class, this, super.toString());
}
@@ -568,6 +603,11 @@ public class StripedExecutor implements ExecutorService {
}
/** {@inheritDoc} */
+ @Override String queueToString() {
+ return String.valueOf(queue);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(StripeConcurrentBlockingQueue.class, this, super.toString());
}