Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 95369 invoked from network); 12 May 2009 19:06:56 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 12 May 2009 19:06:56 -0000 Received: (qmail 44859 invoked by uid 500); 12 May 2009 19:06:55 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 44753 invoked by uid 500); 12 May 2009 19:06:54 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 44742 invoked by uid 99); 12 May 2009 19:06:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 May 2009 19:06:54 +0000 X-ASF-Spam-Status: No, hits=-4.0 required=10.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [195.227.30.149] (HELO mailserver.kippdata.de) (195.227.30.149) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 May 2009 19:06:46 +0000 Received: from [192.168.2.114] ([192.168.2.114]) by mailserver.kippdata.de (8.13.5/8.13.5) with ESMTP id n4CJ6Ouf020375 for ; Tue, 12 May 2009 21:06:24 +0200 (CEST) Message-ID: <4A09C839.4030108@kippdata.de> Date: Tue, 12 May 2009 21:04:25 +0200 From: Rainer Jung User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1b3pre) Gecko/20090223 Lightning/1.0pre Thunderbird/3.0b2 MIME-Version: 1.0 To: Tomcat Developers List Subject: Re: mod_jk 1.2.28 on i5/OS References: <6291fc850905120343w6649693t9e4bea806a4343e5@mail.gmail.com> <6291fc850905120404t3ec213c9xe890583d0b7dd237@mail.gmail.com> <4A0976D5.1000302@kippdata.de> <6291fc850905120631w757d8177x8181503ca64a751f@mail.gmail.com> <4A097CD9.8040602@kippdata.de> <6291fc850905120657q51773d56j417e4a00f7fb6e4b@mail.gmail.com> <4A09884F.7070106@kippdata.de> <6291fc850905120855u66f9db46gcd11c210d0fb935d@mail.gmail.com> <4A09C4D4.10009@kippdata.de> In-Reply-To: <4A09C4D4.10009@kippdata.de> Content-Type: multipart/mixed; boundary="------------050803000503010100000108" X-Virus-Checked: Checked by ClamAV on apache.org --------------050803000503010100000108 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Here's the patch keeping the original structure but using a cleanup to destroy the pool reference. If it works, I would like that better. Regards, Rainer --------------050803000503010100000108 Content-Type: text/plain; name="jk_connect-pool.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="jk_connect-pool.patch" Index: jk_connect.c =================================================================== --- jk_connect.c (revision 763986) +++ jk_connect.c (working copy) @@ -35,7 +35,7 @@ #include "apr_errno.h" #include "apr_general.h" #include "apr_pools.h" -static apr_pool_t *jk_apr_pool = NULL; +static apr_pool_t *jk_resolv_pool = NULL; #endif #ifdef HAVE_SYS_FILIO_H @@ -58,6 +58,13 @@ typedef const char* SET_TYPE; #endif +static apr_status_t jk_resolv_cleanup(void *d) +{ + /* Clean up pointer content */ + *(apr_pool_t **)d = NULL; + return APR_SUCCESS; +} + /** Set socket to blocking * @param sd socket to manipulate * @return errno: fcntl returns -1 (!WIN32) @@ -343,15 +350,18 @@ apr_sockaddr_t *remote_sa, *temp_sa; char *remote_ipaddr; - if (!jk_apr_pool) { - if (apr_pool_create(&jk_apr_pool, (apr_pool_t *)pool) != APR_SUCCESS) { + if (!jk_resolv_pool) { + if (apr_pool_create(&jk_resolv_pool, (apr_pool_t *)pool) != APR_SUCCESS) { JK_TRACE_EXIT(l); return JK_FALSE; } } - apr_pool_clear(jk_apr_pool); + /* 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_apr_pool) + (&remote_sa, host, APR_UNSPEC, (apr_port_t) port, 0, jk_resolv_pool) != APR_SUCCESS) { JK_TRACE_EXIT(l); return JK_FALSE; --------------050803000503010100000108 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org --------------050803000503010100000108--