Re: [APC-DEV] Recursive zval patch for review/comments

[email protected] (Brian Shire) Tue, 6 Feb 2007 14:28:44 -0800
Newsgroups php.apc.dev
Message-ID <[email protected]>
Ah I see, thanks and sorry for the headache.

On Feb 6, 2007, at 2:00 PM, Gopal V wrote:

> Gopal V wrote:
>
>> And somehow seems to fix a relatively random, but recurring
>> coredump (more on that on monday) with apc-cvs right now on
>> centos+apache1+x86.
>
> Traced it down to one of your patches.
>
> #4  0x00ee772a in sma_deallocate (shmaddr=0xb5f90000, offset=18780)
>     at /home/gopalv/apc_debug/apc-control/apc_sma.c:259
> #5  0x00ee7fe2 in apc_sma_free (p=0xb5f9496c)
>     at /home/gopalv/apc_debug/apc-control/apc_sma.c:482
> #6  0x00ee3daa in my_destroy_zval (src=0xb5f9496c,
>     deallocate=0xee7eed <apc_sma_free>)
>     at /home/gopalv/apc_debug/apc-control/apc_compile.c:1603
> #7  0x00ee3dd4 in my_destroy_znode (src=0xb5f94968,
>     deallocate=0xee7eed <apc_sma_free>)
>     at /home/gopalv/apc_debug/apc-control/apc_compile.c:1611
> #8  0x00ee3e06 in my_destroy_zend_op (src=0xb5f94950,
>     deallocate=0xee7eed <apc_sma_free>)
>     at /home/gopalv/apc_debug/apc-control/apc_compile.c:1620
> #9  0x00ee43a4 in my_destroy_op_array (src=0xb5f94860,
>     deallocate=0xee7eed <apc_sma_free>)
>     at /home/gopalv/apc_debug/apc-control/apc_compile.c:1796
> #10 0x00ee45a5 in apc_free_op_array (src=0xb5f94860,
>     deallocate=0xee7eed <apc_sma_free>)
>     at /home/gopalv/apc_debug/apc-control/apc_compile.c:1882
>
> Just because zval->refcount == 0 doesn't mean apc_destroy_zval()
> can automatically apc_sma_free() it. This literally corrupts
> prv->next with junk from the previous zend_op and crashes happen
> relatively randomly.
>
> The real problem is that sma_deallocate() acts rather dumb about
> whether it got a valid offset to free or not.
>
> Cheers,
> Gopal
> -- 
> The difference between insanity and genius is measured by success

-Brian Shire
  [email protected]
  [email protected]