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.

Mark


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

Reply via email to