Some comments on your latest provided patch : if (!jk_resolv_pool) { if (apr_pool_create(&jk_resolv_pool, (apr_pool_t *)pool) != APR_SUCCESS) { JK_TRACE_EXIT(l); return JK_FALSE; } } /* We need to clear the pool reference, if the pool gets destroyed * via its parent pool. */ apr_pool_cleanup_register(jk_resolv_pool, &jk_resolv_pool, jk_resolv_cleanup, jk_resolv_cleanup); apr_pool_clear(jk_resolv_pool); if (apr_sockaddr_info_get (&remote_sa, host, APR_UNSPEC, (apr_port_t) port, 0, jk_resolv_pool) != APR_SUCCESS) { JK_TRACE_EXIT(l); return JK_FALSE; }
Why not just add the cleanup register in pool create side ? if (!jk_resolv_pool) { if (apr_pool_create(&jk_resolv_pool, (apr_pool_t *)pool) != APR_SUCCESS) { JK_TRACE_EXIT(l); return JK_FALSE; } /* We need to clear the pool reference, if the pool gets destroyed * via its parent pool. */ apr_pool_cleanup_register(jk_resolv_pool, &jk_resolv_pool, jk_resolv_cleanup, jk_resolv_cleanup); } apr_pool_clear(jk_resolv_pool); if (apr_sockaddr_info_get (&remote_sa, host, APR_UNSPEC, (apr_port_t) port, 0, jk_resolv_pool) != APR_SUCCESS) { JK_TRACE_EXIT(l); return JK_FALSE; } Also what could happen if we get many threads calling jk_resolv at the same time ? --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org