On Wed, Mar 27, 2019 at 4:21 PM Mark Thomas <ma...@apache.org> wrote:

> On 27/03/2019 15:13, Mark Thomas wrote:
> > On 27/03/2019 04:23, Jason Rivard wrote:
> >> I'm trying to get the following configuration working:
> >>
> >> - Tomcat 9.0.17 (also tested with 9.0.16)
> >> - AdoptOpenJDK Java 11.0.2 on Linux (also tested on Windows)
> >> - Http11NioProtocol Connector
> >> - Http2Protocol ProtocolUpgrade
> >>
> >> I'm using the following connector config:
> >>
> >> <Connector port="8443"
> protocol="org.apache.coyote.http11.Http11NioProtocol"
> >>
> sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
> >>      SSLEnabled="true" scheme="https" secure="true"
> >>      keystoreFile="/appData/jks-keystore" keystorePass="password">
> >>   <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
> >> </Connector>
> >>
> >> With the UpgradeProtocol in place, HTTP/2.0 works fine, but when I
> >> attempt a pure HTTP/1.0 or HTTP/1.1 request the server closes the
> >> connection before responding.  This breaks any non-HTTP2.0 client.
> >>
> >> My first question is: Should this configuration work?
> >
> > Yes.
> >
> >> My second is: Why is it broken?  :)
> >
> > Don't know yet. Just started looking.
>
> That didn't take long.
>
> When ALPN is available but no protocol is negotiated, OpenSSL returns
> null whereas JSSE returns "".
>
> Tomcat was doing:
> if (negotiatedProtocol != null) { ...
>
> rather than
>
> if (negotiatedProtocol != null && negotiatedProtocol.length() > 0) {
>
> and trying to create a Processor object for the "" protocol, failing and
> then closing the connection.
>
> The fix will be in the next set of releases (expected towards the end of
> next week).
>

This is a rather serious bug IMO, so that release cannot be delayed.

Rémy

Reply via email to