You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ki...@apache.org on 2014/05/15 23:37:18 UTC
svn commit: r1595060 - in
/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common:
CHANGES.txt src/main/java/org/apache/hadoop/http/HttpServer.java
Author: kihwal
Date: Thu May 15 21:37:18 2014
New Revision: 1595060
URL: http://svn.apache.org/r1595060
Log:
HADOOP-10588. Workaround for jetty6 acceptor startup issue. Contributed by Kihwal Lee.
Modified:
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1595060&r1=1595059&r2=1595060&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt Thu May 15 21:37:18 2014
@@ -18,6 +18,8 @@ Release 0.23.11 - UNRELEASED
HADOOP-7688. When a servlet filter throws an exception in init(..),
the Jetty server failed silently. (Uma Maheswara Rao G via kihwal)
+ HADOOP-10588. Workaround for jetty6 acceptor startup issue. (kihwal)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java?rev=1595060&r1=1595059&r2=1595060&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java Thu May 15 21:37:18 2014
@@ -281,9 +281,42 @@ public class HttpServer implements Filte
return HttpServer.createDefaultChannelConnector();
}
+
+ private static class SelectChannelConnectorWithSafeStartup
+ extends SelectChannelConnector {
+ public SelectChannelConnectorWithSafeStartup() {
+ super();
+ }
+
+ /* Override the broken isRunning() method (JETTY-1316). This bug is present
+ * in 6.1.26. For the versions wihout this bug, it adds insignificant
+ * overhead.
+ */
+ @Override
+ public boolean isRunning() {
+ if (super.isRunning()) {
+ return true;
+ }
+ // We might be hitting JETTY-1316. If the internal state changed from
+ // STARTING to STARTED in the middle of the check, the above call may
+ // return false. Check it one more time.
+ LOG.warn("HttpServer Acceptor: isRunning is false. Rechecking.");
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException ie) {
+ // Mark this thread as interrupted. Someone up in the call chain
+ // might care.
+ Thread.currentThread().interrupt();
+ }
+ boolean runState = super.isRunning();
+ LOG.warn("HttpServer Acceptor: isRunning is " + runState);
+ return runState;
+ }
+ }
+
@InterfaceAudience.Private
public static Connector createDefaultChannelConnector() {
- SelectChannelConnector ret = new SelectChannelConnector();
+ SelectChannelConnector ret = new SelectChannelConnectorWithSafeStartup();
ret.setLowResourceMaxIdleTime(10000);
ret.setAcceptQueueSize(128);
ret.setResolveNames(false);