Issue with Undertow Client and SSL
by Thomas Segismont
Hi,
Openshift Origin uses Hawkular Metrics to store node and container data. In
this scenario, Hawkular Metrics calls the Kubernetes master server over
HTTPS to validate the client identity. This is implemented with Undertow
Client, as part of a ServletExtension (inside Wildfly 10) [1]. Works fine
in development and testing.
Now the Openshit team sees errors in the logs [2][3]. I couldn't reproduce
yet. Errors come in pair, first the "UT005001: An exception occurred
processing the request: java.lang.IllegalStateException: XNIO000017: Buffer
was already freed", and just after "XNIO001007: A channel event listener
threw an exception: java.lang.NullPointerException".
Does that ring a bell? I haven't been able to find a starting point by
looking into the source the code.
Thanks
--
Thomas Segismont
JBoss ON Engineering Team
[1] https://git.io/vrNyP
[2] https://issues.jboss.org/browse/HWKMETRICS-408
[3] https://issues.jboss.org/secure/attachment/12405779/hawkular.log
1 week, 4 days
Correctly shutting down a websocket handler
by Robin Anil
When a client disconnects, I see that onClose is not being fired. The only
way this seems to be firing if client sents a close frame.
Is there any way to detect disconnection and immediately close all the
opened resources.
Robin
Robin Anil | Software Engineer
2 years, 5 months
Supporting HTTP CONNECT over HTTP/2?
by Ivan Ristic
Hello list,
Is there any interest in getting HTTP CONNECT over HTTP/2 to work? I spent
some time on it, but although I fixed two small issues, I hit a third that
was beyond my undertow knowledge. I was left feeling that getting this to
work only requires a few connecting pieces, although naturally I could be
wrong.
Here's what I discovered:
- In Http2ReceiveListener, there's code that refuses requests that don't
have path set (with "No :path header sent in HTTP/2 request"). However,
path must be omitted with CONNECT per
https://tools.ietf.org/html/rfc7540#page-64
- Later on, ConnectHandler doesn't expect the path to be null.
- The acceptConnectRequest handler from
https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io...
is not getting called and the connection is thus not setup. This is because
Http2ServerConnection#setConnectListener doesn't do anything, unlike its
counterpart HttpServerConnection.
For context, I was playing with the idea of building a general-purpose
forward TCP proxy based on undertow. HTTP/2 is of interest here because of
multiplexing, which would eliminate connection setup costs [of both TCP and
TLS] between the client and proxy and substantially improve performance
when many connections are needed.
If it matters, I used Jetty's HTTP/2 client library to connect to Undertow,
although I had to patch it to not send path and scheme when method is
CONNECT.
--
Ivan
5 years, 11 months