Re: [APC-DEV] 3.0.x vs. 3.1.x
| From: | Gopal V | Date: | Fri, 28 Mar 2008 13:35:23 +0000 |
| Subject: | Re: [APC-DEV] 3.0.x vs. 3.1.x | ||
| References: | 1 2 3 | Groups: | php.apc.dev |
| Request: | Send a blank email to php-apc-dev+get-117@lists.php.net to get a copy of this message | ||
Rasmus Lerdorf wrote:
So at this point I think the strategy should be to take the .16 code and only apply the bug fixes and the removal of the local cache stuff and push out a .18 based on that.Uhh... that was my initial plan for 0.17 :) Rasmus those are the ones I see are new for 3.0.17
g0pz I think the memleak was a regression? g0pz and I don't think the apc_fetch bool one needs merge back g0pz is a feature change g0pz but I'll merge the sma_allocate() one. the apc_add() one and theCVE? I admit it... I was lazy to merge everything, but looks like being lazy could be a virtue here :)
It's 7am in Bangalore right now, so Gopal should be coming online in a couple of hours. He was playing with stuff last night, so let's see if he has found something.==19278== Invalid read of size 4
==19278== at 0x4D7FE35: destroy_op_array (zend_opcode.c:228).... ==19278== Address 0x7A441F0 is 0 bytes inside a block of size 4 free'd
==19278== at 0x4804EFA: free (vg_replace_malloc.c:235) ==19278== by 0x4D6F954: _efree (zend_alloc.c:2274) ==19278== by 0x5215469: apc_request_shutdown (apc_main.c:615) ==19278== by 0x520D8B8: zm_deactivate_apc (php_apc.c:309)Looks like the regression is in the memleak patches by shire. I didn't pay enough attention when he committed it, but those leaks were ignored or rather left in-limbo because of past bugs. Other parts of http://news.php.net/php.pecl.cvs/10041 b0rks up this older "fix" :) http://cvs.php.net/viewvc.cgi/pecl/apc/apc_main.c?r1=3.98&r2=3.99 The order in which extensions are unloaded and the way they use memory makes it really hard for APC to zero-copy data without leaks - memcpy'ing opcodes into local memory is a huge perf-hit, but the workaround with huge refcounts introduces such leaks. Maybe I should make it clearer in code. Cheers, Gopal -- The difference between insanity and genius is measured by success