On Fri, Oct 31, 2025 at 3:35 PM Mark Thomas <[email protected]> wrote:
>
> On 31/10/2025 13:28, Mark Thomas wrote:
> > On 30/10/2025 19:11, Mark Thomas wrote:
> >
> > <snip/>
> >
> >> Progress. I've got to the bottom of the crash.
> >>
> >> In summary, the test does this:
> >> - start connector (creates first OpenSSLState)
> >> - reloads SSLHostConfig (creates second OpenSSLState)
> >> - stops connector (cleans second OpenSSLState)
> >> - stops APRLifecycleListener
> >>    - calls GC
> >>      - starts cleaning thread
> >>    - terminates APR (frees all JNI objects)
> >>    - cleaning tread tries to clean first OpenSSLState and triggers a
> >>      crash because the clean has already happened
> >>
> >> Tomorrow's job is to figure out the best way to fix this. I'll leave
> >> the incorrect fix in place and revert it / replace it with the right
> >> fix when I have it.
> >
> > The challenge in fixing this is that
> > o.a.t.u.n.o.OpenSSLContext.OpenSSLState needs to be able to get to
> > o.a.c.core.AprLifeycleListener or AprStatus
> >
> > We don't allow classes in o.a.t to import classes from o.a.c.
> >
> > I'm am trying to find the least ugly way to fix this. That AprStatus and
> > large parts of AprLifecycleListener are static reduces the options for a
> > simple fix. Suggestions welcome.
>
> Moving AprStatus to org.apache.tomcat.jni seems like the least invasive fix.
>
> I'll start work on that, and the associated back-ports, now.

I had also moved OpenSSLStatus as I had a similar package dependency problem.

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to