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, 5 days
Undertow prematurely closes connection
by Selvakumar Govindaraj
Hi, I'm new to undertow world..
I've a wrapper that handles the exchange end logic.. Before calling the wrapper undertow itself ends the exchange and calls the exchange complete listener. This issue is happening randomly and not for all requests. I've enabled debugging it didn't provide proper information. I'm not sure how to identify the action which closes the exchange?
For Ex :
RequestDispatcher {
void dispatch() {
this.exchange.dispatch(executor, () -> {
httpAction.execute(exchangeWrapper);
});
}
}
ResponseSender { // This class is used everywhere but send method called only once
void send() {
if (!this.exchange.isResponseStarted()) {
throw error;
} else {
writeHeaders and
this.exchange.endExchange();
}
}
}
UndertowConfig {
void init() {
this.routingHandler = Handlers.routing();
this.server = Undertow.builder()
.setWorkerThreads(50)
.setServerOption(UndertowOptions.ENABLE_HTTP2, true)
.setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, 15000)
.setServerOption(UndertowOptions.REQUEST_PARSE_TIMEOUT, 150000)
.setServerOption(UndertowOptions.IDLE_TIMEOUT, 150000)
.addHttpListener(Integer.parseInt(port), "0.0.0.0", routingHandler).build();
}
}
Please assist me on this
1 year, 6 months
Help - Undertow prematurely closes connection
by Selvakumar Govindharaj
Hi, I'm new to the undertow world..
I've a wrapper that handles the exchange end logic.. Before calling the
wrapper, undertow itself ends the exchange and calls the exchange complete
listener. This issue is happening randomly and not for all requests. I've
enabled debugging but it didn't provide proper information. I'm not sure
how to identify the action which closes the exchange?
For Ex :
RequestDispatcher {
void dispatch() {
this.exchange.dispatch(executor, () -> {
httpAction.execute(exchangeWrapper);
});
}
}
ResponseSender { // This class is used everywhere but send method called
only once
void send() {
if (!this.exchange.isResponseStarted()) {
throw error;
} else {
writeHeaders and
this.exchange.endExchange();
}
}
}
UndertowConfig {
void init() {
this.routingHandler = Handlers.routing();
this.server = Undertow.builder()
.setWorkerThreads(50)
.setServerOption(UndertowOptions.ENABLE_HTTP2, true)
.setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, 15000)
.setServerOption(UndertowOptions.REQUEST_PARSE_TIMEOUT,
150000)
.setServerOption(UndertowOptions.IDLE_TIMEOUT, 150000)
.addHttpListener(Integer.parseInt(port), "0.0.0.0",
routingHandler).build();
}
}
Please help me on this
--
Regards
Selvakumar
1 year, 6 months
Undertow prematurely closes connection
by Selvakumar Govindaraj
Hi, I'm new to undertow world..
I've a wrapper that handles the exchange end logic.. Before calling the wrapper undertow itself ends the exchange and calls the exchange complete listener. This issue is happening randomly and not for all requests. I've enabled debugging it didn't provide proper information. I'm not sure how to identify the action which closes the exchange?
For Ex :
RequestDispatcher {
void dispatch() {
this.exchange.dispatch(executor, () -> {
httpAction.execute(exchangeWrapper);
});
}
}
ResponseSender { // This class is used everywhere but send method called only once
void send() {
if (!this.exchange.isResponseStarted()) {
throw error;
} else {
writeHeaders and
this.exchange.endExchange();
}
}
}
UndertowConfig {
void init() {
this.routingHandler = Handlers.routing();
this.server = Undertow.builder()
.setWorkerThreads(50)
.setServerOption(UndertowOptions.ENABLE_HTTP2, true)
.setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, 15000)
.setServerOption(UndertowOptions.REQUEST_PARSE_TIMEOUT, 150000)
.setServerOption(UndertowOptions.IDLE_TIMEOUT, 150000)
.addHttpListener(Integer.parseInt(port), "0.0.0.0", routingHandler).build();
}
}
Please assist me on this
1 year, 6 months