Return-Path: Delivered-To: apmail-perl-dev-archive@www.apache.org Received: (qmail 42755 invoked from network); 8 Dec 2004 22:21:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 8 Dec 2004 22:21:30 -0000 Received: (qmail 7873 invoked by uid 500); 8 Dec 2004 22:21:29 -0000 Delivered-To: apmail-perl-dev-archive@perl.apache.org Received: (qmail 7858 invoked by uid 500); 8 Dec 2004 22:21:29 -0000 Mailing-List: contact dev-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@perl.apache.org Received: (qmail 7838 invoked by uid 99); 8 Dec 2004 22:21:29 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from mail.logilune.com (HELO mail.logilune.com) (195.80.154.36) by apache.org (qpsmtpd/0.28) with ESMTP; Wed, 08 Dec 2004 14:21:27 -0800 Received: from [127.0.0.1] (localhost.logilune.com [127.0.0.1]) by mail.logilune.com (Postfix) with ESMTP id B20951E1A12; Wed, 8 Dec 2004 23:21:23 +0100 (CET) Message-ID: <41B77E62.5060501@stason.org> Date: Wed, 08 Dec 2004 17:21:22 -0500 From: Stas Bekman Organization: Hope, Humanized User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913 X-Accept-Language: en-us, en, he, ru MIME-Version: 1.0 To: Stas Bekman Cc: Geoffrey Young , mod_perl Dev Subject: Re: hanging proxy and $base_server_pool->cleanup_register References: <41AE8C9D.1080003@stason.org> <41B3CFCF.3090903@stason.org> <41B4C80F.4080906@stason.org> <41B4CABF.8020404@modperlcookbook.org> <41B4CD7A.9070601@stason.org> <41B5ADDB.1050403@modperlcookbook.org> <41B5D5A3.7070506@stason.org> <41B76530.3020009@stason.org> <41B77361.6030007@stason.org> In-Reply-To: <41B77361.6030007@stason.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Stas Bekman wrote: > Without trying to figure out why this happens, I can now see that it was > clearly a mistake to expose this pool. Why? Because this pool is not > thread-safe (remember it's a global static variable). Well, I've figured it out anyway. We have (t/conf/extra.conf.in): PerlInterpStart 1 PerlInterpMax 2 PerlInterpMinSpare 1 PerlInterpMaxSpare 2 So there could be only 2 perl interpreters at most used at any given time (talking about the main perl interpreters pool here). If the two are busy any new requests will block. Now cleanup_register() ties a perl interpreter and doesn't release it until that cleanup handler is run. So that call: $base_server_pool->cleanup_register(sub { Apache::OK }); was tieing an interpreter, but wasn't releasing it (since the pool is freed at the child_exit only). And therefore we had a lack of available interpreters and voil� the problem we had that we all saw. I'll fix that shortly in the way suggested in my previous followup. -- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:stas@stason.org http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org For additional commands, e-mail: dev-help@perl.apache.org