This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push: new 1786df8027 Correct a regression in the fix for BZ 66508 1786df8027 is described below commit 1786df8027770e9376909abf037a8d39bc5bcbf2 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Jan 18 18:43:07 2024 +0000 Correct a regression in the fix for BZ 66508 It could could cause an UpgradeProcessor leak in some circumstances https://bz.apache.org/bugzilla/show_bug.cgi?id=66508 --- .../tomcat/websocket/server/WsRemoteEndpointImplServer.java | 9 +++++++-- webapps/docs/changelog.xml | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java index 57fcc97d56..d0cfef46ac 100644 --- a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java +++ b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java @@ -103,8 +103,13 @@ public class WsRemoteEndpointImplServer extends WsRemoteEndpointImplBase { protected boolean acquireMessagePartInProgressSemaphore(byte opCode, long timeoutExpiry) throws InterruptedException { - // Only close requires special handling. - if (opCode != Constants.OPCODE_CLOSE) { + /* + * Special handling is required only when all of the following are true: + * - A close message is being sent + * - This thread currently holds the socketWrapper lock (i.e. the thread is current processing a socket event) + */ + if (!(opCode == Constants.OPCODE_CLOSE && socketWrapper.getLock().isHeldByCurrentThread())) { + // Skip special handling return super.acquireMessagePartInProgressSemaphore(opCode, timeoutExpiry); } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 52b5650875..687590df61 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -128,6 +128,14 @@ </fix> </changelog> </subsection> + <subsection name="WebSocket"> + <changelog> + <fix> + Correct a regression in the fix for <bug>66508</bug> that could cause an + <code>UpgradeProcessor</code> leak in some circumstances. (markt) + </fix> + </changelog> + </subsection> </section> <section name="Tomcat 10.1.18 (schultz)" rtext="2024-01-09"> <subsection name="Catalina"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org