diff options
author | Justin Erenkrantz <jerenkrantz@apache.org> | 2003-12-12 11:24:59 +0100 |
---|---|---|
committer | Justin Erenkrantz <jerenkrantz@apache.org> | 2003-12-12 11:24:59 +0100 |
commit | c4c039933e326bbcc36d25a69cbe59095bac1dc1 (patch) | |
tree | 752e5d319a1fdc7a89f5691450479b8dd2758932 | |
parent | fix a problem where a crash of a non-MPM child process could (diff) | |
download | apache2-c4c039933e326bbcc36d25a69cbe59095bac1dc1.tar.xz apache2-c4c039933e326bbcc36d25a69cbe59095bac1dc1.zip |
If you ignore a problem long enough, it'll be fixed by someone else.
FreeBSD 5.2-RC with either libthr or libkse enabled (instead of the default
libc_r) is confirmed to be operational with the worker MPM. Add notes to
STATUS and README.platforms (as there is now an upgrade path that may be
reasonable for those needing threads).
[No soak tests run, but it serves pages - which is an improvement over before]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@102036 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | README.platforms | 6 | ||||
-rw-r--r-- | STATUS | 39 |
2 files changed, 14 insertions, 31 deletions
diff --git a/README.platforms b/README.platforms index 4e998ea5e0..3524cd1ea7 100644 --- a/README.platforms +++ b/README.platforms @@ -54,6 +54,12 @@ shell implementation (/bin/sh) on FreeBSD. Be sure to use v2.13 of autoconf. + Threaded MPMs are not supported on FreeBSD 4.x. Current releases of + FreeBSD 5.x (5.2 or later) support threaded MPMs correctly. You must pass + '--enable-threads=yes' to APR's configure in order to enable threads. + Additionally, you must use libthr or libkse via libmap.conf as the default + libc_r is still broken as of this writing. Please consult the man page for + libmap.conf for more details about configuring libthr or libkse. ================ HP-UX: The dlopen() system call in HP-UX has problems when loading/unloading @@ -1,5 +1,5 @@ APACHE 2.1 STATUS: -*-text-*- -Last modified at [$Date: 2003/11/20 16:12:28 $] +Last modified at [$Date: 2003/12/12 10:24:59 $] Release [NOTE that only Alpha/Beta releases occur in 2.1 development]: @@ -284,39 +284,16 @@ RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: lost. This might be an APR issue with how it deals with the child_init hook (i.e. the fcntl lock needs to be resynced). More examination and analysis is required. - Status: This has also been reported on Cygwin. + Status: This has also been reported on Cygwin. FreeBSD 4.7 was reputed to have 'fixed' threads. Not. + FreeBSD 5.2-RC is a confirmed fix w/either libkse or libthr. + [libc_r, still the default, does not serve any pages w/worker; + so on FreeBSD 5.2, you must use libmap.conf (see man page).] + Work needs to be done to get APR to try to be knowledgable that + libkse/libthr are acceptable. Still not recommended for the + default since libc_r is still broken. Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus) - Aaron says: I spent some time disecting this and have come to - the conclusion that it is not a problem in the worker MPM - (or at least, it is not isolated to a problem in worker). - I'll list some of the problems I'm seeing in case someone - else wants to pick up where I've left off: - - Delivery of just about any signal to one of the child - processes will send it into an infinite loop as well. - - Even though the parent is spinning out of control, - at first the child or children will appear to work - properly. At times it is possible to get it into a state, - however, where a request will hang until another concurrent - request "kicks" the first, at which point the second will - hang. My theory is that this has to do with the - pthread_cond_*() implementation in FreeBSD, but it's still - possible that it is in APR. - - Justin adds: Oh, FreeBSD threads are implemented entirely with - select()/poll()/longjmp(). Welcome to the nightmare. - So, that means a ktrace output also has the thread - scheduling internals in it (since it is all the same to - the kernel). Which makes it hard to distinguish between - our select() calls and their select() calls. - *bangs head on wall repeatedly* But, some of the libc_r - files have a DBG_MSG #define. This is moderately helpful - when used with -DNO_DETACH. The kernel scheduler isn't - waking up the threads on a select(). Yum. And, I bet - those decrementing select calls have to do with the - scheduler. Time to brush up on our OS fundamentals. - * There is increasing demand from module writers for an API that will allow them to control the server à la apachectl. Reasons include sole-function servers that need to die if |