You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2015/11/20 22:02:05 UTC
[11/50] [abbrv] incubator-geode git commit: GEODE-77 adding expected
thread states to PluckStacks tool
GEODE-77 adding expected thread states to PluckStacks tool
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/ad8ee8cb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/ad8ee8cb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/ad8ee8cb
Branch: refs/heads/develop
Commit: ad8ee8cb832837427598012cf3c41d8d357da6d1
Parents: a68ed7d
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Fri Oct 23 10:11:54 2015 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Fri Oct 23 10:11:54 2015 -0700
----------------------------------------------------------------------
.../gemfire/internal/util/PluckStacks.java | 36 +++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/ad8ee8cb/gemfire-core/src/main/java/com/gemstone/gemfire/internal/util/PluckStacks.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/util/PluckStacks.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/util/PluckStacks.java
index 951f47f..fea45ce 100644
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/util/PluckStacks.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/util/PluckStacks.java
@@ -180,9 +180,31 @@ public class PluckStacks {
// check these first for efficiency
+ if (threadName.startsWith("Cache Client Updater Thread")) {
+ return stackSize == 13 && thread.get(2).contains("SocketInputStream.socketRead0");
+ }
+ if (threadName.startsWith("Client Message Dispatcher")) {
+ return stackSize == 13 && thread.get(1).contains("TIMED_WAITING");
+ }
if (threadName.startsWith("Function Execution Processor")) {
return isIdleExecutor(thread);
}
+ if (threadName.startsWith("GemFire Membership Timer")) {
+// System.out.println("gf timer stack size = " + stackSize + "; frame = " + thread.get(1));
+ return stackSize < 9 && thread.get(1).contains("Thread.State: WAITING");
+ }
+ if (threadName.startsWith("GemFire Membership View Creator")) {
+// System.out.println("gf view creator stack size = " + stackSize + "; frame = " + thread.get(1));
+ return stackSize < 8 && thread.get(1).contains("Thread.State: WAITING");
+ }
+ if (threadName.startsWith("GemFire Suspect Message Collector")) {
+// System.out.println("gf suspect collector stack size = " + stackSize + "; frame = " + thread.get(1));
+ return stackSize <= 7 && thread.get(1).contains("Thread.State: WAITING");
+ }
+ if (threadName.startsWith("P2P Listener")) {
+// System.out.println("p2p listener stack size = " + stackSize + "; frame = " + thread.get(2));
+ return (stackSize == 8 && thread.get(2).contains("SocketChannelImpl.accept"));
+ }
if (threadName.startsWith("P2P message reader")) {
return (stackSize == 11 &&
(thread.getFirstFrame().contains("FileDispatcherImpl.read") ||
@@ -206,9 +228,21 @@ public class PluckStacks {
}
if (threadName.startsWith("ServerConnection")) {
if (thread.getFirstFrame().contains("socketRead")
- && (stackSize > 5 && thread.get(5).contains("fetchHeader"))) return true; // reading from a client
+ && (stackSize > 6 && thread.get(6).contains("fetchHeader"))) return true; // reading from a client
return isIdleExecutor(thread);
}
+ if (threadName.startsWith("Timer runner")) {
+// System.out.println("timer runner stack size = " + stackSize + "; frame = " + thread.get(1));
+ return (stackSize <= 10 && thread.get(1).contains("TIMED_WAITING"));
+ }
+ if (threadName.startsWith("TransferQueueBundler")) {
+// System.out.println("transfer bundler stack size = " + stackSize + "; frame = " + thread.get(2));
+ return (stackSize == 9 && thread.get(2).contains("sun.misc.Unsafe.park"));
+ }
+ if (threadName.startsWith("unicast receiver")) {
+// System.out.println("unicast receiver stack size = " + stackSize + "; frame = " + thread.get(3));
+ return (stackSize > 2 && thread.get(2).contains("PlainDatagramSocketImpl.receive"));
+ }
/////////////////////////////////////////////////////////////////////////