Nuno Lopes wrote:
In the last days I've exchanged some e-mails with PCRE's author because of one more bug that appeared in our database about segfaults in PCRE (related to stack overflows). PCRE can consume a lot of stack, because of backtracking (thus segfaulting PHP). Yesterday I've discovered that when using the setrlimit() function, most segfaults can be avoided (http://mega.ist.utl.pt/~ncpl/php_pcre_stack_limits.txt) :)

This sounds like an interesting idea, I think we need to consider it doing for PHP in general rather then jut when PCRE is being used. The only thing is that rather then setting the stack to infinity, perhaps a small value can be used ;-)

I've done a little program for fun to show myself how to catch the SIGSEGV signals and print a nice message. (http://mega.ist.utl.pt/~ncpl/break-stack.html)

So, catching the signal is easy. What about recovery? Doesn't anyone has experience in this area? Can this be done? (and in most SAPIs/architectures?)


After SEGV or any memory problem has happened the situation is undefined. Another words you cannot reliably continue the operation of the program. Which is why termination and dumping of core is the lesser of all evils in this case.

Ilia

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to