tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Oswell <>
Subject Re: Tomcat 8.5 - APR 1.2.10 SSL CPU issue ?
Date Fri, 06 Jan 2017 21:50:02 GMT
I've somehow gotten the build for tcnative working here (more shocked I
finally got openssl to build!)

There seems to be a slight difference in how the shutdown occurs. When the
APR_EGENERAL is returned its due to falling through the SSL_ERROR_SYSCALL
block in sslnetwork.c:ssl_socket_recv,
This seems to be due to a difference in the value returned by;
sslnetwork.c:324 :                                rv =

on the bad case (quick socket close), rv is (730053) which
on a good disconnect case (slower socket close) rv is (730054)

I suspect a check with APR_STATUS_IS_ECONNABORTED(rv) might be needed to
capture this scenario (WSAECONNABORTED), however I'm not sure how else this
status might occur, and if any of those cases should not flag it as closed
- although reading on WSAECONNABORTED it sounds like this is a close case.
Not sure if it's an exception case or just normal EOF though.

On Fri, Jan 6, 2017 at 10:00 AM, Mark Thomas <> wrote:

> On 06/01/2017 10:52, Mark Thomas wrote:
> > I can reproduce the (new?) loop error with the following:
> > - clean trunk (9.0.x) build
> > - enable debug logging for AprEndpoint
> > - APR/native 1.2.10
> > - WebSocket drawboard example
> > - hold down F5
> >
> > I see some error messages as per the original problem but fairly quickly
> > Tomcat enters the infinite loop.
> >
> > Next steps are digging into the APR/native code.
> It was a different loop related specifically to WebSocket that is now
> fixed.
> I'm still looking into this. I'm am currently leaning towards removing
> the suspect APR_EGENERAL handling from Tomcat but I want to see if I can
> re-create the problem that caused it to be added in the first place. I
> haven't had any success so far which leads me to suspect that the root
> cause may have been a Tomcat bug that was fixed in the 8.5.x/trunk
> refactoring. Proving that is going to be tricky.
> Mark
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message