On 10 May 2015 at 13:47, Steve Hay <steve.m....@googlemail.com> wrote:
> On 28 April 2015 at 07:51,  <jkal...@apache.org> wrote:
>> Author: jkaluza
>> Date: Tue Apr 28 06:51:12 2015
>> New Revision: 1676417
>>
>> URL: http://svn.apache.org/r1676417
>> Log:
>> Initialize interp->refcnt to 1 in modperl_interp_select.
>>
>> Reasoning:
>> 1. All calls of MP_INTERPa do not increment interp->refcnt, so refcnt
>>    used to be 0 before this commit. But there is always matching
>>    MP_INTERP_PUTBACK, which calls modperl_interp_unselect which decreases
>>    the refcnt, so it was possible to get negative refcnt or crash with
>>    threaded MPMs, because reference counting has been broken.
>> 2. modperl_interp_select increases the refcount if it finds the PerlInterp in
>>    ccfg, so it makes sense to increase it (it means set to 1) during
>>    initialization too. Otherwise the refcnt would be incremented for the 
>> caller
>>    in some cases, but wouldn't be in other.
>>
>> This commit fixes the crash seen on worker MPM when PerlInterp has been used
>> by two threads and the first one freed PerlInterp during
>> modperl_interp_unselect.
>>
>> Modified:
>>     perl/modperl/trunk/src/modules/perl/modperl_interp.c
>>
>
> I cannot understand why, but since this patch was applied I find that
> t\modules\proxy.t fails every time when I run the full "nmake test",
> but it always succeeds when I run it in isolation so I'm at a loss to
> find out what is going wrong. All other tests (apart from those known
> Win32-specific failures documented in README) still pass. Reverting
> the patch "fixes" the proxy.t problem, but probably isn't the right
> solution.
>

That was testing with 2.4.12, but I have the same problem with 2.2.29
too, so it's not 2.4-specific.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org
For additional commands, e-mail: dev-h...@perl.apache.org

Reply via email to