Practical mod_perl / HTML Book /



previous page: 22.4. Shutdown and Restart
  
page up: HTML Version of the book
  
next page: 22.4.2. [warn] child process 30388 did not exit, sending another SIGHUP

22.4.1. Evil Things Might Happen When Using PerlFreshRestart


Unfortunately, not all Perl modules are robust enough to survive reload. For them this is an unusual situation. PerlFreshRestart does not much more than:

while (my($k,$v) = each %INC) {
    delete $INC{$k};
    require $k;
}

Besides that, it flushes the Apache::Registry cache and empties any dynamic stacked handlers (e.g., PerlChildInitHandler).

Lots of segfaults and other problems have been reported by users who turned on PerlFreshRestart. Most of them go away when it is turned off. It doesn't mean that you shouldn't use PerlFreshRestart, if it works for you. Just beware of the dragons.

Note that if you have a mod_perl-enabled Apache built as a DSO and you restart it, the whole Perl interpreter is completely torn down (via perl_destruct( )) and restarted. The value of PerlFreshRestart is irrelevent at this point.

 

Continue to:

  • prev: 22.4. Shutdown and Restart
  • Table of Contents
  • next: 22.4.2. [warn] child process 30388 did not exit, sending another SIGHUP







TOP
previous page: 22.4. Shutdown and Restart
  
page up: HTML Version of the book
  
next page: 22.4.2. [warn] child process 30388 did not exit, sending another SIGHUP


Menu

  • HTML Book
  • PDF Book
  • Download Code
  • Table of Contents
  • Errata
  • mod_perl2 User's Guide
  • Sitemap

Search


Add to Google




Creative Commons License


Written by
Eric Cholet (Logilune) and
Stas Bekman (StasoSphere & Free Books).


[ Privacy Policy | Terms of Use | About Us | Search ]

© 2007 StasoSphere.com