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