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