Re: PHP Source Dump
| From: | Richard Lynch | Date: | Sun, 10 Dec 2000 02:04:02 +0000 |
| Subject: | Re: PHP Source Dump | ||
| References: | 1 | Groups: | php.qa |
| Request: | Send a blank email to php-qa+get-1788@lists.php.net to get a copy of this message | ||
> > Since the current theory is that it happens when somebody is editing the
> > config file and/or httpd is starting up or shutting down,
>
> Another possibility which occured to me later was that
> somebody upgraded PHP on the web-server (we are using apxs):
>
> 1. Apache is running with PHP as a DSO
> 2. a new PHP DSO is installed over the old libphp4.so binary
> 3. Apache tries to serve a new request and passes that to PHP
>
> AFAIK relocatable shared libraries under Linux are simply
> mmap'ed into the process virtual memory space. Changes in the
> underlying file are instantly reflected in the virtual memory
> space. So, by simply installing a new DSO we might have
> created a situation where some entry points had changed in a
> way which caused PHP to serve some bogus document, instead of
> immediately segfaulting.
This also could presumably be tested by swapping in/out two different DSO
compilations -- one with some extra external libraries that aren't actually
used by the scripts, and one without...
It certainly does sound like a more reasonable explanation overall --
processes starting/stopping is pretty common and old technology, so I figure
that's been pounded on more than this (relatively) new and funky DSO apxs
thingie.
If true, the solution could end up being as simple as making sure you kill
all httpd's before swapping in the new DSO... Kinda messes up the whole
"graceful" thing, though, don't it?...