HADOOP-10588. Workaround for jetty6 acceptor startup issue. Contributed by Kihwal Lee.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1595051 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d4d3cf1210
commit
62d86218ef
|
@ -51,6 +51,8 @@ Release 2.5.0 - UNRELEASED
|
|||
HADOOP-10572. Example NFS mount command must pass noacl as it isn't
|
||||
supported by the server yet. (Harsh J via brandonli)
|
||||
|
||||
HADOOP-10588. Workaround for jetty6 acceptor startup issue. (kihwal)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
BUG FIXES
|
||||
|
|
|
@ -306,9 +306,42 @@ public class HttpServer implements FilterContainer {
|
|||
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);
|
||||
|
|
|
@ -438,9 +438,41 @@ public final class HttpServer2 implements FilterContainer {
|
|||
return HttpServer2.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);
|
||||
|
|
Loading…
Reference in New Issue