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]
