On Sun, 17 Aug 2003, Steve Langasek wrote:
> http://bugs.debian.org/131080
> http://bugs.debian.org/131724
> http://bugs.debian.org/165699
> http://bugs.debian.org/165718
> http://bugs.debian.org/165719
> http://bugs.debian.org/166414
> http://bugs.debian.org/188014
> http://bugs.debian.org/188025
> http://bugs.debian.org/188058
> http://bugs.debian.org/189202
> http://bugs.debian.org/189653
> http://bugs.debian.org/200255
> http://bugs.debian.org/205592

Most of these seem to be symbol clash problems (Ok, I didn't read them
all) or problems vaguely attributed to Apache's double init phase on
startup.

Your conclusion that pushing towards dl() instead of figuring out what is
messing up the extension=foo.so style of loading libraries is misguided.
dl() is slow because the library is loaded and unloaded on every single
request.  dl() is clunky because it isn't, and I don't see how it could
ever be, threadsafe.  And finally it has some nasty security implications.
I understand you want to address these with safemode changes, but many
servers don't run safemode (because it is not actually very safe and in
general it is crap) and the damage a user can do is somewhat limited.  By
forcing them to allow dl() users can now load arbitrary C code directly
into the web server process and really really mess stuff up.

Nobody here is saying that we don't want to support folks building binary
distributions of PHP.  We are just saying that your chosen path is a bad
idea and that we need to address the real problem instead.
Architecturally it makes absolutely no sense to load and unload libraries
on a per-request basis.  This has to happen at server startup.

One thing we should probably do is not dlclose() any shared extensions on
shutdown.  I am not sure if your list of bugs included any reports of
crashes on shutdown, but if you ever come across one of those it is likely
that removing the dlclose() will fix it.

-Rasmus

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

Reply via email to