You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by je...@apache.org on 2003/12/12 11:24:59 UTC
cvs commit: httpd-2.0 STATUS README.platforms
jerenkrantz 2003/12/12 02:24:59
Modified: . STATUS README.platforms
Log:
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]
Revision Changes Path
1.775 +8 -31 httpd-2.0/STATUS
Index: STATUS
===================================================================
RCS file: /home/cvs/httpd-2.0/STATUS,v
retrieving revision 1.774
retrieving revision 1.775
diff -u -u -r1.774 -r1.775
--- STATUS 20 Nov 2003 16:12:28 -0000 1.774
+++ STATUS 12 Dec 2003 10:24:59 -0000 1.775
@@ -284,38 +284,15 @@
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: <3C...@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.
1.9 +6 -0 httpd-2.0/README.platforms
Index: README.platforms
===================================================================
RCS file: /home/cvs/httpd-2.0/README.platforms,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -u -r1.8 -r1.9
--- README.platforms 30 Jan 2003 22:43:40 -0000 1.8
+++ README.platforms 12 Dec 2003 10:24:59 -0000 1.9
@@ -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