This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 93759327a4ba74c30414c7e4f99a5eceb0253b6f Author: Mark Thomas <ma...@apache.org> AuthorDate: Mon Jan 10 17:22:28 2022 +0000 Refactor Connector/Endpoint pause only stop new connections/requests --- java/org/apache/coyote/AbstractProtocol.java | 6 +----- java/org/apache/tomcat/util/net/Nio2Endpoint.java | 4 ++-- java/org/apache/tomcat/util/net/NioEndpoint.java | 6 +++--- webapps/docs/changelog.xml | 5 +++++ 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/java/org/apache/coyote/AbstractProtocol.java b/java/org/apache/coyote/AbstractProtocol.java index c286a23..896e94d 100644 --- a/java/org/apache/coyote/AbstractProtocol.java +++ b/java/org/apache/coyote/AbstractProtocol.java @@ -585,9 +585,7 @@ public abstract class AbstractProtocol<S> implements ProtocolHandler, endpoint.start(); monitorFuture = getUtilityExecutor().scheduleWithFixedDelay( () -> { - if (!isPaused()) { - startAsyncTimeout(); - } + startAsyncTimeout(); }, 0, 60, TimeUnit.SECONDS); } @@ -630,7 +628,6 @@ public abstract class AbstractProtocol<S> implements ProtocolHandler, getLog().info(sm.getString("abstractProtocolHandler.pause", getName())); } - stopAsyncTimeout(); endpoint.pause(); } @@ -647,7 +644,6 @@ public abstract class AbstractProtocol<S> implements ProtocolHandler, } endpoint.resume(); - startAsyncTimeout(); } diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java index 47825f0..c9dc0d3 100644 --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java @@ -932,7 +932,7 @@ public class Nio2Endpoint extends AbstractJsseEndpoint<Nio2Channel,AsynchronousS if (getSocket().isOpen()) { getSocket().close(true); } - if (getEndpoint().running && !getEndpoint().paused) { + if (getEndpoint().running) { if (nioChannels == null || !nioChannels.push(getSocket())) { getSocket().free(); } @@ -1671,7 +1671,7 @@ public class Nio2Endpoint extends AbstractJsseEndpoint<Nio2Channel,AsynchronousS socketWrapper = null; event = null; //return to cache - if (running && !paused && processorCache != null) { + if (running && processorCache != null) { processorCache.push(this); } } diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java b/java/org/apache/tomcat/util/net/NioEndpoint.java index de72805..107e591 100644 --- a/java/org/apache/tomcat/util/net/NioEndpoint.java +++ b/java/org/apache/tomcat/util/net/NioEndpoint.java @@ -691,7 +691,7 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> } } } - if (running && !paused && eventCache != null) { + if (running && eventCache != null) { pe.reset(); eventCache.push(pe); } @@ -1195,7 +1195,7 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> if (getSocket().isOpen()) { getSocket().close(true); } - if (getEndpoint().running && !getEndpoint().paused) { + if (getEndpoint().running) { if (nioChannels == null || !nioChannels.push(getSocket())) { getSocket().free(); } @@ -1703,7 +1703,7 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> socketWrapper = null; event = null; //return to cache - if (running && !paused && processorCache != null) { + if (running && processorCache != null) { processorCache.push(this); } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index a93bba0..18ee8a0 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -167,6 +167,11 @@ <bug>65785</bug>: Perform additional validation of HTTP headers when using HTTP/2. (markt) </fix> + <fix> + When a Connector or Endpoint is paused, ensure that only new connections + and new requests on existing connections are stopped while allowing in + progress requests to run to completion. (markt) + </fix> </changelog> </subsection> <subsection name="Jasper"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org