Stas Bekman wrote:
> Philippe M. Chiasson wrote:
> [...]
> 
>> After a long promised investigation session, I believe I have pinned
>> it down. It seems to have been introduced by change r160562 when the
>> anon_cnt initialization code was moved around as a result. Didn't have
>> enough time tonight to dig down as to _why_ this is breaking though...
>>
>> Not entirely sure why this breaks specifically on Darwin and all, but
>> the following patch seems to make the problem dissapear. Does it fix
>> the problem you are seeing too ?
>>
>> Index: src/modules/perl/modperl_handler.c
>> ===================================================================
>> --- src/modules/perl/modperl_handler.c  (revision 170139)
>> +++ src/modules/perl/modperl_handler.c  (working copy)
>> @@ -89,9 +89,6 @@
>>          modperl_modglobal_lookup(aTHX_ "ANONSUB");
>>      MP_TRACE_h(MP_FUNC, "init $PL_modglobal{ANONSUB} = []");
>>      MP_MODGLOBAL_STORE_HV(gkey);
>> -
>> -    /* init the counter to 0 */
>> -    modperl_global_anon_cnt_init(p);
>>  }
>>
>>  /* allocate and populate the anon handler sub-struct */
>> Index: src/modules/perl/mod_perl.c
>> ===================================================================
>> --- src/modules/perl/mod_perl.c (revision 170139)
>> +++ src/modules/perl/mod_perl.c (working copy)
>> @@ -532,6 +532,9 @@
>>      modperl_global_init_server_rec(pconf, s);
>>
>>      modperl_tls_create_request_rec(pconf);
>> +
>> +    /* init the counter to 0 */
>> +    modperl_global_anon_cnt_init(pconf);
>>  }
>>
>>  /*
> 
> Philippe is talking about
> http://svn.apache.org/viewcvs.cgi?rev=160562&view=rev
> 
> http://svn.apache.org/viewcvs.cgi/perl/modperl/trunk/src/modules/perl/mod_perl.c?rev=160562&view=diff&r1=160562&r2=160561&p1=perl/modperl/trunk/src/modules/perl/mod_perl.c&p2=/perl/modperl/trunk/src/modules/perl/mod_perl.c
> 

Yup, that one.

> But it can't be reverted , since it was a fix for a bug in
> vhosts+anonsub+ithreads. I couldn't add a test reproducing the problem,
> as it wasn't suitable for the test suite (would have affected other
> tests). So it needs to stay that way and figured out what needs to be
> fixed elsewhere.
> 
> Philippe, your patch can't be applied either, since it has exactly the
> same effect as reverting r160562, since you moved
> modperl_global_anon_cnt_init() to modperl_init_globals() which is called
> only for the top-level server:

Yes, but I am not reverting that change, keeping it as is, hash initialization
and all, and only moving the modperl_global_anon_cnt_init() up so it's called
only once. I don't think initializating that anon_cnt global more than once is
a feature (and it registers it's destruction twice, causing the segfault on 
OSX).

Are you saying that you need more than one distinct global anon_cnt in some
vhost+anonsub+ithreads setup?
--------------------------------------------------------------------------------
Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5
http://gozer.ectoplasm.org/     F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to