Re: Disabling the GC during shutdown
| From: | Stas Malyshev | Date: | Fri, 21 Jun 2013 03:20:19 +0000 |
| Subject: | Re: Disabling the GC during shutdown | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-67765@lists.php.net to get a copy of this message | ||
Hi!
> Honestly, I am not sure. Every report that I've seen has it happening at
> shutdown. Could very well be a coincidence.
Well, if we don't know why or if it's shutdown only, disabling on
shutdown wouldn't do much good.
> I have a patch which prevents the
> segfault:
> https://github.com/ircmaxell/php-src/compare/invalidate_object_on_dtor
>
> However, that's not really fixing the situation either, as the zval is
> still getting nuked (but only partially).
If there's a memory overwrite or use-after-free is going on, this patch
is not a complete solution - it relies on the fact that "bad" data will
be always out of range of "good" data. I see no way to ensure that - so
if there's an overwrite that writes garbage inside the object there will
be situations where the garbage looks exactly like a valid object ID and
it will still crash, but it would be significantly harder to reproduce.
So I think before patching it we need to get to the root cause and
figure out why it happens and what causes it, instead of partially
fixing the symptoms.
> And no, I'm withdrawing the original concept of disabling the GC during
> shutdown. The current patch I have works, but it's still just a bandaid
> on a gunshot wound, and I'm going to try to figure out what's actually
> overwriting the zval..
That'd be great, if you have any script that reproduces - always or at
least frequently - the problem, please post it.
--
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227