I just want to concur I have the same issue. Removing that one line upgradeprotocol and rewrite works again.
On Thu, Feb 6, 2020 at 3:28 PM Hua Zhang <hzhang1...@gmail.com> wrote: > Nope, I also tested it with NIO instead of APR, same issues happen. > RewriteValve does not function as expected. Besides it, there are also two > https-443-exec executed by one request. > > There is definitely something wrong with Http2Protocol. And it results in > this case a problem in RewriteValve. > > And what kind of extra information do you want to have. I cannot send any > pictures in the email. You want the server.xml configuration? Except that > file, almost every other configuration file is untouched. No load balancer, > no any proxy here. Just a straight forward connection to tomcat instance. > > Here an remark, you can only reproduce errors if Http2Protocol is indeed > activated, namely you see in browser h2 protocol is used by request. In > Eclipse, I cannot reproduce the issue, since I cannot get h2 protocol > working there. > > > Hua > > Rémy Maucherat <r...@apache.org> 于 2020年2月6日周四 下午3:06写道： > > > On Thu, Feb 6, 2020 at 2:56 PM Hua Zhang <hzhang1...@gmail.com> wrote: > > > > > Thank you for the response. I am finally able to confirm the issue. > > > > > > When I put the following line in comment, everything works fine. I mean > > as > > > expected. > > > > > > *<!-- <UpgradeProtocol > className="org.apache.coyote.http2.Http2Protocol" > > /> > > > -->* > > > > > > > > > If the above line UpgradeProtocol is activated, I observe now at least > > two > > > weird situations. > > > > > > 1) As mentioned before, RewriteValve does not work as expected. > > > 2) Besides it, I observed that serviet behaviors weird. According to > the > > > log file it seems that a servlet is sometimes called *twice by one > > > request*. > > > > > > This is a snapshot of my log files. You can see that two https-443-exec > > are > > > called almost at the same time. > > > > > > 06-Feb-2020 13:38:04.676 SEVERE *[https-openssl-apr-443-exec-9]* > > > org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() > > > for servlet [uploadServlet] in context with path  threw exception > > > > > > org.apache.commons.fileupload.MultipartStream$MalformedStreamException: > > > Stream ended unexpectedly > > > 06-Feb-2020 13:38:04.999 SEVERE *[https-openssl-apr-443-exec-2]* > > > org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() > > > for servlet [uploadServlet] in context with path  threw exception > > > > > > org.apache.commons.fileupload.MultipartStream$MalformedStreamException: > > > Stream ended unexpectedly > > > > > > > Ok, so your problem seems to be about HTTP/2 rather than the rewrite > valve: > > HTTP/2 is usually not used without TLS and ALPN. You should continue to > > post more details. Something you can try is use the NIO connector (with > > OpenSSL or JSSE) rather than APR, it would be a more common > configuration. > > > > Rémy > > > > > > > > > > > Best regards, > > > > > > Hua > > >