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 <[email protected]> Authored: Sun Dec 23 17:20:20 2012 +0100 Committer: Roger Meier <[email protected]> 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(); }
