summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Erenkrantz <jerenkrantz@apache.org>2003-12-12 11:24:59 +0100
committerJustin Erenkrantz <jerenkrantz@apache.org>2003-12-12 11:24:59 +0100
commitc4c039933e326bbcc36d25a69cbe59095bac1dc1 (patch)
tree752e5d319a1fdc7a89f5691450479b8dd2758932
parentfix a problem where a crash of a non-MPM child process could (diff)
downloadapache2-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.platforms6
-rw-r--r--STATUS39
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
diff --git a/STATUS b/STATUS
index 1b98097c7d..4af1b70d7b 100644
--- a/STATUS
+++ b/STATUS
@@ -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