Am 21.01.2019 um 15:49 schrieb Mark Thomas:
Version 1.2.20 includes the following changes compared to 1.2.19:

- Fixed memory leak associated with the use of OpenSSL BIO (used when
   OpenSSL provides the TLS functionality for the NIO and NIO2
   connectors)

Various other fixes and improvements. See the changelog for details.

The proposed release artefacts can be found at [1],
and the build was done using tag [2].

The Apache Tomcat Native 1.2.20 release is
  [ ] Stable, go ahead and release
  [X] Broken because of ...

At last during unit test execution JVM crashes, eg. in TestCustomSsl. A new native APR pool is being freed as a child pool of aprPool during OpenSSLContext.destroy() at the end of a test and then there's another attempt to free it later when the Finalizer kicks in and finalizes the old OpenSSLEngine.

What I don't know though is whether this can happen for normal TC or embedded TC or is specific to the lifetimes of objects during unit test execution.

Details:

- test testCustomTrustManagerNone creates OpenSSLEngine 7f560c39, ssl 4298850656 and con->pool 4309969128 from parent pool aprPool = c->pool 4306893544

- at the end of this test OpenSSLContext.destroy() runs and destroys aprPool = c->pool 4306893544 and therefore also its child pools including con->pool 4309969128

- later during testCustomSslImplementation the Finalizer kicks in for the old OpenSSLEngine 7f560c39.

- The finalize() method frees the old ssl 4298850656, which was also created in the earlier test

- Freeing that ssl in the native code destroys the con->pool 4309969128 which was already destroyed at the end of the first test

Regards,

Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to