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"));
+    }
     
     /////////////////////////////////////////////////////////////////////////