I've been running across a problem lately where a child process terminates because of an out of memory error. It prints Out of Memory once, the the process sucks up all available cpu print "Callback called exit." to the log file until it hit's it's 2GB max size.

I have some Apache::Resource limits set, and they probably need to be raised, but the way the error is handled is not very graceful. I'd expect the child to just terminate after reporting the first error message. I'm not sure if this is a perl problem or a mod_perl problem. I'd still like to figure out how to prevent the repeating message from happening.

Anyway, I've been pulling my hair out trying to prevent this, and I've finally figured out how to trap this. I have some suggestions for the documentation, because the following url could use some help:

http://perl.apache.org/docs/1.0/guide/ troubleshooting.html#Callback_called_exit

=> "Note that Perl 5.005 and later have PERL_EMERGENCY_SBRK turned on by default."

This is only true if perl was built to use it's own malloc. However, "usemymalloc=y" is not the default for many systems because they assume the OS version is probably a better implementation (which could be true). However, when perl's internal malloc is used, none of the suggestions for solving the out of memory problem or repeated Callback called exit messages work.

=> "See Perl's INSTALL document for this item:"

This might have been true at one point. Newer versions of perl 5.6 and 5.8 have no reference to this option in the INSTALL document

=>  "=item -DPERL_EMERGENCY_SBRK ..... "

a better quotation would be from perlvar.pod which states the crux of the matter: " ..... Suppose that your Perl were compiled with -DPERL_EMERGENCY_SBRK and used Perl's malloc ..."



--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html



Reply via email to