I added some debug logging to native and the Java classes and the picture looks understandable now. Here the example from NIO and TestCustomSsl:

- 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

- kaboom.

24-Jan-2019 12:51:50.967 INFO [main] org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case [testCustomTrustManagerNone] 24-Jan-2019 12:51:51.894 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.20] using APR version [1.6.5]. 24-Jan-2019 12:51:51.896 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 24-Jan-2019 12:51:51.897 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 24-Jan-2019 12:51:51.933 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2q 20 Nov 2018] 24-Jan-2019 12:51:53.418 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-1"] 24-Jan-2019 12:51:53.537 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<clinit> Created temp aprPool in static part of OpenSSLEngine 4306893544 24-Jan-2019 12:51:53.544 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<clinit> Created temp SSLContext in static part of OpenSSLEngine 4306893664
Created con->pool 4307758744 from c->pool 4306893544
24-Jan-2019 12:51:53.551 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<clinit> Created temp ssl in static part of OpenSSLEngine with con->pool 4307758744 and c->pool 4306893544 24-Jan-2019 12:51:53.727 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<clinit> Freeing temp ssl in static part of OpenSSLEngine with con->pool 4307758744 and c->pool 4306893544 freeSSL destroying con->pool 430775874424-Jan-2019 12:51:53.729 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<clinit> Freeing temp SSLContext in static part of OpenSSLEngine 4306893664 24-Jan-2019 12:51:53.731 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<clinit> Destroying temp aprPool in static part of OpenSSLEngine 4306893544 24-Jan-2019 12:51:55.687 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.<init> Created OpenSSLContext with aprPool 4306893544 24-Jan-2019 12:51:55.816 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 24-Jan-2019 12:51:55.916 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Tomcat] 24-Jan-2019 12:51:55.919 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.X-rXX-dev 24-Jan-2019 12:51:56.406 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-1-36031"]
Created con->pool 4307758744 from c->pool 4306893544
24-Jan-2019 12:51:56.937 SEVERE [https-openssl-nio-127.0.0.1-auto-1-exec-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<init> Created OpenSSLEngine org.apache.tomcat.util.net.openssl.OpenSSLEngine@3753746, ssl 4305791088 with con->pool 4307758744 and c->pool 4306893544 24-Jan-2019 12:51:56.940 SEVERE [https-openssl-nio-127.0.0.1-auto-1-exec-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<init> Created OpenSSLEngine org.apache.tomcat.util.net.openssl.OpenSSLEngine@3753746, networkBIO 4305793296
Created con->pool 4309969128 from c->pool 4306893544
24-Jan-2019 12:51:58.394 SEVERE [https-openssl-nio-127.0.0.1-auto-1-exec-8] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<init> Created OpenSSLEngine org.apache.tomcat.util.net.openssl.OpenSSLEngine@7f560c39, ssl 4298850656 with con->pool 4309969128 and c->pool 4306893544 24-Jan-2019 12:51:58.396 SEVERE [https-openssl-nio-127.0.0.1-auto-1-exec-8] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<init> Created OpenSSLEngine org.apache.tomcat.util.net.openssl.OpenSSLEngine@7f560c39, networkBIO 4299567568 24-Jan-2019 12:51:58.689 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-1-36031"] 24-Jan-2019 12:51:58.703 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Tomcat] 24-Jan-2019 12:51:58.787 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-1-36031"] 24-Jan-2019 12:51:58.797 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-1-36031"] 24-Jan-2019 12:51:58.803 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy Into OpenSSLContext.destroy(), checking atomic... 24-Jan-2019 12:51:58.804 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy OpenSSLContext.destroy() atomic checked 24-Jan-2019 12:51:58.805 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy OpenSSLContext.destroy() destroying pool 4306893544

24-Jan-2019 12:51:58.855 INFO [main] org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case [testCustomTrustManagerCA] 24-Jan-2019 12:51:58.867 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.20] using APR version [1.6.5]. 24-Jan-2019 12:51:58.868 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 24-Jan-2019 12:51:58.869 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 24-Jan-2019 12:51:58.876 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2q 20 Nov 2018] 24-Jan-2019 12:51:58.928 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-2"] 24-Jan-2019 12:51:58.935 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.<init> Created OpenSSLContext with aprPool 4309969128 24-Jan-2019 12:51:59.015 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 24-Jan-2019 12:51:59.019 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Tomcat] 24-Jan-2019 12:51:59.022 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.X-rXX-dev 24-Jan-2019 12:51:59.202 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-2-36035"]
Created con->pool 4304787480 from c->pool 4309969128
24-Jan-2019 12:51:59.363 SEVERE [https-openssl-nio-127.0.0.1-auto-2-exec-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<init> Created OpenSSLEngine org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266, ssl 4310084000 with con->pool 4304787480 and c->pool 4309969128 24-Jan-2019 12:51:59.367 SEVERE [https-openssl-nio-127.0.0.1-auto-2-exec-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.<init> Created OpenSSLEngine org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266, networkBIO 4303251712 24-Jan-2019 12:51:59.642 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-2-36035"] 24-Jan-2019 12:51:59.645 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Tomcat] 24-Jan-2019 12:51:59.666 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-2-36035"] 24-Jan-2019 12:51:59.669 SEVERE [https-openssl-nio-127.0.0.1-auto-2-ClientPoller-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown Into OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266, checking destroyed? 24-Jan-2019 12:51:59.672 SEVERE [https-openssl-nio-127.0.0.1-auto-2-ClientPoller-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266, calling SSL.freeBIO() for 4303251712 24-Jan-2019 12:51:59.673 SEVERE [https-openssl-nio-127.0.0.1-auto-2-ClientPoller-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266, calling SSL.freeSSL() for 4310084000 freeSSL destroying con->pool 430478748024-Jan-2019 12:51:59.674 SEVERE [https-openssl-nio-127.0.0.1-auto-2-ClientPoller-1] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266 zeroing fields 24-Jan-2019 12:51:59.683 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["https-openssl-nio-127.0.0.1-auto-2-36035"] 24-Jan-2019 12:51:59.684 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy Into OpenSSLContext.destroy(), checking atomic... 24-Jan-2019 12:51:59.685 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy OpenSSLContext.destroy() atomic checked 24-Jan-2019 12:51:59.686 SEVERE [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy OpenSSLContext.destroy() destroying pool 4309969128

24-Jan-2019 12:51:59.705 INFO [main] org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case [testCustomSslImplementation] 24-Jan-2019 12:51:59.768 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-jsse-nio-127.0.0.1-auto-3"] 24-Jan-2019 12:51:59.836 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 24-Jan-2019 12:51:59.840 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Tomcat] 24-Jan-2019 12:51:59.840 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.X-rXX-dev 24-Jan-2019 12:52:00.118 INFO [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment No global web.xml found 24-Jan-2019 12:52:01.308 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized() 24-Jan-2019 12:52:01.312 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized() 24-Jan-2019 12:52:01.318 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@32102196') ContextListener: attributeAdded('javax.websocket.server.ServerContainer', 'org.apache.tomcat.websocket.server.WsServerContainer@7bb65f0b') 24-Jan-2019 12:52:01.810 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.finalize Into OpenSSLEngine.finalize(), calling super Finalizer 24-Jan-2019 12:52:01.812 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.finalize OpenSSLEngine.finalize(), calling shutdown() 24-Jan-2019 12:52:01.813 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown Into OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@5c79266, checking destroyed? 24-Jan-2019 12:52:01.815 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLContext.destroy Into OpenSSLContext.destroy(), checking atomic... 24-Jan-2019 12:52:01.816 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.finalize Into OpenSSLEngine.finalize(), calling super Finalizer 24-Jan-2019 12:52:01.817 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.finalize OpenSSLEngine.finalize(), calling shutdown() 24-Jan-2019 12:52:01.817 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown Into OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@7f560c39, checking destroyed? 24-Jan-2019 12:52:01.818 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@7f560c39, calling SSL.freeBIO() for 4299567568 24-Jan-2019 12:52:01.818 SEVERE [Finalizer] org.apache.tomcat.util.net.openssl.OpenSSLEngine.shutdown OpenSSLEngine.shutdown() for org.apache.tomcat.util.net.openssl.OpenSSLEngine@7f560c39, calling SSL.freeSSL() for 4298850656
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0xa) at pc=0xfffffffea1a1dda0, pid=17803, tid=0x0000000000000007
#
# JRE version: Java(TM) SE Runtime Environment (8.0_201-b09) (build 1.8.0_201-b09) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.201-b09 mixed mode solaris-sparc compressed oops)
# Problematic frame:
# C  [libapr-1.so.0.6.5+0x1dda0]  apr_pool_destroy+0x10
#
# Core dump written. Default location: /path/to/core or core.17803
#
# An error report file with more information is saved as:
# /path/to/hs_err_pid17803.log
[thread 56 also had an error]
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Running org.apache.tomcat.util.net.TestCustomSsl
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec
Test org.apache.tomcat.util.net.TestCustomSsl FAILED (crashed)

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