You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2012/12/23 17:21:52 UTC

git commit: THRIFT-1795 Race condition in TThreadedServerPool java implementation Patch: Venkat Ranganathan

Updated Branches:
  refs/heads/master 019314984 -> 5d06db63c


THRIFT-1795 Race condition in TThreadedServerPool java implementation
Patch: Venkat Ranganathan


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/5d06db63
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/5d06db63
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/5d06db63

Branch: refs/heads/master
Commit: 5d06db63cf7077cffff52f46f44317f48fd01c65
Parents: 0193149
Author: Roger Meier <ro...@apache.org>
Authored: Sun Dec 23 17:20:20 2012 +0100
Committer: Roger Meier <ro...@apache.org>
Committed: Sun Dec 23 17:20:20 2012 +0100

----------------------------------------------------------------------
 .../apache/thrift/server/TNonblockingServer.java   |    4 ++--
 .../org/apache/thrift/server/TSimpleServer.java    |    4 ++--
 .../apache/thrift/server/TThreadPoolServer.java    |    3 ++-
 .../thrift/server/TThreadedSelectorServer.java     |    4 ++--
 4 files changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/5d06db63/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
----------------------------------------------------------------------
diff --git a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
index dccae52..169ae5c 100644
--- a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
@@ -48,7 +48,8 @@ public class TNonblockingServer extends AbstractNonblockingServer {
   }
 
   // Flag for stopping the server
-  private volatile boolean stopped_ = true;
+  // Please see THRIFT-1795 for the usage of this flag
+  private volatile boolean stopped_ = false;
 
   private SelectAcceptThread selectAcceptThread_;
 
@@ -68,7 +69,6 @@ public class TNonblockingServer extends AbstractNonblockingServer {
     // start the selector
     try {
       selectAcceptThread_ = new SelectAcceptThread((TNonblockingServerTransport)serverTransport_);
-      stopped_ = false;
       selectAcceptThread_.start();
       return true;
     } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/thrift/blob/5d06db63/lib/java/src/org/apache/thrift/server/TSimpleServer.java
----------------------------------------------------------------------
diff --git a/lib/java/src/org/apache/thrift/server/TSimpleServer.java b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
index 6e92801..4dfc176 100644
--- a/lib/java/src/org/apache/thrift/server/TSimpleServer.java
+++ b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
@@ -35,14 +35,14 @@ public class TSimpleServer extends TServer {
 
   private static final Logger LOGGER = LoggerFactory.getLogger(TSimpleServer.class.getName());
 
-  private boolean stopped_ = false;
+  // Please see THRIFT-1795 for the usage of this flag
+  private volatile boolean stopped_ = false;
 
   public TSimpleServer(AbstractServerArgs args) {
     super(args);
   }
 
   public void serve() {
-    stopped_ = false;
     try {
       serverTransport_.listen();
     } catch (TTransportException ttx) {

http://git-wip-us.apache.org/repos/asf/thrift/blob/5d06db63/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
----------------------------------------------------------------------
diff --git a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
index 9a68c76..19e51af 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
@@ -73,7 +73,8 @@ public class TThreadPoolServer extends TServer {
   private ExecutorService executorService_;
 
   // Flag for stopping the server
-  private volatile boolean stopped_;
+  // Please see THRIFT-1795 for the usage of this flag
+  private volatile boolean stopped_ = false;
 
   private final TimeUnit stopTimeoutUnit;
 

http://git-wip-us.apache.org/repos/asf/thrift/blob/5d06db63/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
----------------------------------------------------------------------
diff --git a/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java b/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
index 04179e6..23ec842 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
@@ -181,7 +181,8 @@ public class TThreadedSelectorServer extends AbstractNonblockingServer {
   }
 
   // Flag for stopping the server
-  private volatile boolean stopped_ = true;
+  // Please see THRIFT-1795 for the usage of this flag
+  private volatile boolean stopped_ = false;
 
   // The thread handling all accepts
   private AcceptThread acceptThread;
@@ -220,7 +221,6 @@ public class TThreadedSelectorServer extends AbstractNonblockingServer {
       }
       acceptThread = new AcceptThread((TNonblockingServerTransport) serverTransport_,
         createSelectorThreadLoadBalancer(selectorThreads));
-      stopped_ = false;
       for (SelectorThread thread : selectorThreads) {
         thread.start();
       }