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
>

Reply via email to