Author: markt
Date: Sat Dec 12 20:32:29 2015
New Revision: 1719732
URL: http://svn.apache.org/viewvc?rev=1719732&view=rev
Log:
Revert r1719532, r1719534 & r1719535 until a better fix can be found for APR's
handling of client disconnect.
Modified:
tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java
tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1719732&r1=1719731&r2=1719732&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Sat Dec 12
20:32:29 2015
@@ -50,7 +50,7 @@ public abstract class AbstractProcessorL
} else if (dispatches != null) {
DispatchType nextDispatch = dispatches.next();
state = dispatch(nextDispatch.getSocketStatus());
- } else if (status == SocketStatus.DISCONNECT && !isUpgrade()) {
+ } else if (status == SocketStatus.DISCONNECT) {
// Do nothing here, just wait for it to get recycled
} else if (isAsync() || isUpgrade() || state ==
SocketState.ASYNC_END) {
state = dispatch(status);
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1719732&r1=1719731&r2=1719732&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Sat Dec 12
20:32:29 2015
@@ -1706,12 +1706,8 @@ public class AprEndpoint extends Abstrac
}
wrapper.pollerFlags = wrapper.pollerFlags &
~((int) desc[n*2]);
// Check for failed sockets and hand this
socket off to a worker
- if ((desc[n*2] & Poll.APR_POLLHUP) ==
Poll.APR_POLLHUP) {
- if (!processSocket(desc[n*2+1],
SocketStatus.DISCONNECT)) {
- // Close socket and clear pool
- closeSocket(desc[n*2+1]);
- }
- } else if(((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)
+ if (((desc[n*2] & Poll.APR_POLLHUP) ==
Poll.APR_POLLHUP)
+ || ((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)
|| ((desc[n*2] & Poll.APR_POLLNVAL) ==
Poll.APR_POLLNVAL)) {
// Need to trigger error handling. Poller
may return error
// codes plus the flags it was waiting for
or it may just
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1719732&r1=1719731&r2=1719732&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
(original)
+++
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
Sat Dec 12 20:32:29 2015
@@ -174,7 +174,6 @@ public class WsHttpUpgradeHandler implem
close(cr);
}
break;
- case DISCONNECT:
case ERROR:
String msg = sm.getString("wsHttpUpgradeHandler.closeOnError");
wsSession.doClose(new CloseReason(CloseCodes.GOING_AWAY, msg),
@@ -183,6 +182,7 @@ public class WsHttpUpgradeHandler implem
case ASYNC_READ_ERROR:
case ASYNC_WRITE_ERROR:
case CLOSE_NOW:
+ case DISCONNECT:
case TIMEOUT:
return SocketState.CLOSED;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]