https://bz.apache.org/bugzilla/show_bug.cgi?id=57653
Bug ID: 57653
Summary: APR/native crash during HTTP upgrade
Product: Tomcat 9
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Connectors
Assignee: [email protected]
Reporter: [email protected]
Created attachment 32539
--> https://bz.apache.org/bugzilla/attachment.cgi?id=32539&action=edit
Crash log
With the patch below applied (it forces writes onto a separate thread when
using HTTP upgrade) repeated running of the
org.apache.coyote.http11.upgrade.TestUpgrade unit test eventually (after a few
minutes on OSX and Linux) triggers a JVM crash.
I suspect that a socket is closed in one thread while it is still in the
Poller. However, I have not yet been able to identify the code path that
triggers this.
I have attached the crash report.
Index: java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
===================================================================
--- java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
(revision 1663237)
+++ java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
(working copy)
@@ -21,11 +21,9 @@
import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
-import org.apache.coyote.ContainerThreadMarker;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
-import org.apache.tomcat.util.net.DispatchType;
import org.apache.tomcat.util.net.SocketWrapperBase;
import org.apache.tomcat.util.res.StringManager;
@@ -114,11 +112,11 @@
synchronized (registeredLock) {
registered = true;
// Container is responsible for first call to onDataAvailable().
- if (ContainerThreadMarker.isContainerThread()) {
- socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE);
- } else {
+ //if (ContainerThreadMarker.isContainerThread()) {
+ // socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE);
+ //} else {
socketWrapper.registerWriteInterest();
- }
+ //}
}
this.listener = listener;
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]