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();
}