]> granicus.if.org Git - apache/blobdiff - STATUS
Fix some problems on systems where EAGAIN != EWOULDBLOCK (e.g., OS/390).
[apache] / STATUS
diff --git a/STATUS b/STATUS
index 220b89b55713473ed8c506dbc4cbc4401d9a8838..a3830f3315ece1d8241cc617f29c824ce29cac28 100644 (file)
--- a/STATUS
+++ b/STATUS
 Apache 2.0 STATUS:
-Last modified at [$Date: 1999/12/02 06:33:05 $]
+Last modified at [$Date: 2000/04/18 18:47:52 $]
 
 Release:
 
-    2.0: In pre-alpha development
-
-Plan:
-
-    * Vague goal of an alpha or beta release in 1999. Commit-then-review
-      is active.
+    2.0a3   : vague plans to release in April sometime.
+    2.0a2   : released March 31, 2000
+    2.0a1   : released March 10, 2000
 
 RELEASE SHOWSTOPPERS:
-
-    * Complete HAVE_SENDFILE work. Need to add iovec head and tail pointers to 
-      the iol sendfile API and make it work under Unix.
-        Status: Bill <stoddard@raleigh.ibm.com> is working on this
-
-    * Pipes to CGI scripts are not being timed out
-        Status: code has been added to APR to support timing out pipes.
-                This needs to be used in Apache now.
+    * Win32: Get mod_auth_digest working under win32
+      - APR_HAS_RANDOM should be defined on windows and there is a 
+      lib/apr/misc/win32/rand.c which is basically a copy of what
+      mod_auth_digest used to use.
+
+    * Re-work configuration for top level Apache.  Work should start with
+      trying to clean the autoconf stuff.  If and only if this proves
+      impossible to do (very unlikely), autoconf should be removed and we
+      will roll our own config implementation.
+      NOTE: When this is implemented, it would be really nice if the
+            default cgi module on Unix with a threaded MPM is the cgid
+            module.  This should be override-able of course.
+          Status: Jim Jagielski is looking into this.
+
+    * Fix SAFEREAD.
+       see <Pine.LNX.4.21.0004101511380.7822-100000@twinlark.arctic.org>
+
+    * MPMs should have responsibility for closing sockets and
+        registering the socket cleanup. Stop registering multiple
+        cleanups for each socket. Move socket close code out of
+        http_connection.c and into the MPMs.
+       Status:
+
+    * Reliable piped logs look broken everywhere. Each MPM includes essentially
+       identical code to ap_register_other_child(), etc. Most of this code can
+       be moved out of the MPMs and into some common file (http_core.c?).
+       Dean says presumably you mean an os-specific file?
 
     * Put back resource limit code
 
-    * Port mod_rewrite
-        Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.
-
-    * Port mod_mime_magic
-        Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.
-
     * suEXEC doesn't work
         Status: Manoj has posted an patch to fix this.
         <19991103003605.A20612@samosa.mindspring.com>
 
-    * Windows NT port isn't done
-        Status: Bill  <stoddard@raleigh.ibm.com> is working on MPM and APR. 
-       Remaining work:
-        1. Add back ability to run Apache as a service
-        2. Fix Win9* specific code in the winnt MPM
-        3. Get the MPM working in multi process mode (one parent & one child)
-        4. Test access logging with multiple threads. Will the native file I/O 
-           calls serialize automagically like the CRT calls or do we need to
-           add region locking each time we write to the access/error logs?
+    * Win32: Enable the Windows MPM to honor max_requests_per_child
+        Status: Bill will fix this.
+
+    * Win32: Get Apache working on Windows 95/98. The following work
+       (at least) needs to be done:
+       - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
+       specific code that is still not in NT only code paths
+       - APR sendfile uses TransmitFile which is not available on
+       95/98.
+       - ap_stat uses GetFileAttributeEx which is not available on
+       95/98
+
+       Status:
+
+    * Win32: Test access logging with multiple threads. Will the 
+       native file I/O calls serialize automagically like the 
+       CRT calls or do we need to add region locking each time 
+       we access the logs?
+       Status: 
 
     * Current 2.0 code is not tested on many Unix platforms. Make 2.0
       work on most, if not all the systems 1.3 did
         Status: Autoconf and APR will get us most of the way there.
 
-    * The module API is a weird combination of the old table and the new
-      hook system. Switch completely to the new hook system
-        Status: Ben Laurie is working on this.
+    * The handler hook needs to use the new registration system
 
     * Modules.  Which modules do not work yet, can we get a list?
 
     * We need a thread-safe resolver, at least on Unix.
-        Status: The best known candidate would be something from BIND
-        (v8 or v9?) The only other option would be to mutex all the
-        resolver calls,
+        Status: The best known candidate would be something from
+       BIND v9.
+
+    * Switch from HSRegex to PCRE. New code should be src/lib/pcre/
+      (ftp://cus.cam.ac.uk/pub/software/programs/pcre/)
+      Status: Greg +1
+
 
 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
+    * Configuration Modules.  Allow a new module type that reads 
+      a config file and sets up an internal tree structure for
+      configuration.
+    
+    * "make distclean" leaves (at least these) turds:
+       lib/.deps
+       lib/apr/.deps
+       lib/apr/shmem/unix/mm/config.log
+       lib/apr/shmem/unix/mm/mm_conf.h
+       lib/apr/shmem/unix/mm/libtool
+       lib/apr/shmem/unix/mm/config.status
+       lib/apr/shmem/unix/mm/Makefile
+       lib/apr/shmem/unix/mm/mm-config
+       main/a
+       modules/.deps
+       modules/mpm/.deps
+       os/.deps
+
+    * the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
+       to set -Wall/etc. flags, and the APR configure.in appears to use
+       --with-debug.  both seem like more of a hardwired pain compaired
+       to the pre-2.0 method of setting EXTRA_CFLAGS.
+
+    * Win32: Reuse accept socket after transmitfile/close
+       This is not a bug, but would be nice to get this feature in 
+       before ship.
+
+    * Win32: Enable the winnt MPM to use the new scoreboard API
+
+    * Win32: Graceful restart of a service is broken (code does shutdown then start)
+
+    * Dynamically loadable MPMs
+      Enable users of the binary distributions of Apache to be able to 
+      dynamically load the MPM.
+
+      Dean says this probably isn't a good idea.  For example consider
+      -lpthread, you couldn't have the same core run with pthreads,
+      prefork, and gnu pth without a lot of headaches is my guess.
+
+    * Platforms that do not support fork (primarily Win32 and AS/400)
+      Consider introducing HAVE_FORK feature macro. Architect start-up code
+      that avoids initializing all the modules in the parent process on
+      platforms that do not support fork.
 
     * Clean the code.  There are a lot of places we used APR but didn't 
       remove the hacks that were required for the cross-platform code in
       1.3.  We need to make the code look like APR was supposed to be there. 
 
-    * Go throught the Bug DB and research the bugs marked "suspended".  People
-      were told these would be considered for inclusion in Apache 2.0, it 
-      would be nice to actually do so.
+    * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
+      People were told these would be considered for inclusion in Apache 2.0,
+      it would be nice to actually do so.
 
-    * Win32: Migrate the MPM over to use APR thread/process calls. This would eliminate
-       some code in the Win32 branch that essentially duplicates what is in APR.
-       Status: Bill <stoddard@raleigh.ibm.com> is working on this.
+    * Win32: Migrate the MPM over to use APR thread/process calls. This
+      would eliminate some code in the Win32 branch that essentially
+      duplicates what is in APR.
 
-    * Move I/O layering into APR.
+      Bill says we need a new procattr, APR_CREATE_SUSPENDED (or
+      something similar) to direct ap_create_process to create the
+      process suspended. We also need a call to wake up the suspended 
+      process This may not be able to be implemented everywhere though.
 
-    * There are still a number of places in the code where we are loosing error
-      status (i.e. throwing away the error returned by a system call and replacing
-      it with a generic error code)
+        Status: 
 
-    * APRize the stat function. CRT stat() is about 30% slower on Windows than
-      the equivalent native Windows call. The APR call should return the Unix
-      style stat structure, just to keep it familier.
+    * Move I/O layering into APR.
+
+    * There are still a number of places in the code where we are
+      loosing error status (i.e. throwing away the error returned by a
+      system call and replacing it with a generic error code)
 
-    * Implement reliable piped logs on Windows
-        Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not reliable) in 1.3. 
-        Should be much cleaner with APR in 2.0.
+    * Win32: Implement reliable piped logs on Windows
+        Status: 
 
     * Switch to autoconf, et al. for configuration.
         Status: Manoj has placed an initial version into the 2.0
         repository. Todos include:
           
-          - Support selection of modules (including MPMs; only Dexter
-            works right now). Probably involved creating a directory for
-            each module
-          - "make install" and "make depend" should work
+          - "make install" should work
           - a tool to simplfy third-party module building should be
             written. Something like apxs
           - Add a lot more checks to satisfy the various platforms, e.g.
             for threading
 
     * Use APR to get rid of more platform dependancies.
-        Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
+        Status: Ryan Bloom <rbb@covalenet.net> is working on this.
 
     * The connection status table is not very efficient. Also, very few stats
       are exported to the connection status table (easy to fix), and mod_status
       is ugly.
 
+    * Optimise the name-based <VirtualHost> implementation so that it uses
+      a hash table instead of a linear linked list scan.
+
+    * Mass vhosting version of suEXEC.
+
+    * Provide a sane API for handling the request's environment variables.
+
+    * configuration option to use *DBM
+      Status: Greg +1 (volunteers)
+
+    * add SDBM into src/lib/sdbm/ as a default/fallback DBM implementation.
+      SDBM is used by Perl, mod_dav, mod_sssl, others for basic DBM support.
+      Status: Greg +1 (volunteers)
+
 Other bugs that need fixing:
 
     * MaxRequestsPerChild measures connections, not requests.
@@ -116,33 +194,28 @@ Other bugs that need fixing:
         behavior. Dean has suggested getting rid of regex containers
         completely.
 
-    * SIGSEGV on Linux seems to only kill a thread, not a whole process;
-      we need to work around this, probably by bouncing the signal to
-      the sigwait thread. But this will hurt debugability.
+    * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
+      sigwaiting thread. We need to work around this, perhaps unless
+      there is hope soon for a fixed glibc.
 
 Other features that need writing:
 
     * Finish infrastructure in core for async MPMs
-        Status: ?
+        Status: post 2.0
 
     * TODO in source -- just do an egrep on "TODO" and see what's there
 
-    * Work on other MPMs. Possible MPMs discussed or in progress include:
-
-      - Dean Gaudet's async MPM
-          Status: dean is unlikely to begin work on this any time soon...
-           has lots of ideas he'll share with folks willing to begin
-           tackling the issues.  this is apache 2.1 material.
-
-      - Zach Brown's <zab@zabbo.net> Linux siginfo MPM
-          Status: ?
-
 Documentation that needs writing:
+    * Mod_status docs are needed.
 
     * The concept of MPMs, especially if we ship more than one MPM for a
       given platform
 
-    * New directives in the various MPMs
+    * New directives in the various MPMs and appropriate links from
+       obsolete directives in core.html to the MPM documentation.
+
+    * Revise manual/stopping.html and the last part of
+       manual/misc/perf-tuning.html to take account of the MPMs.
 
     * API documentation
         Status: Ben Laurie has written some hooks documentation
@@ -155,7 +228,6 @@ Documentation that needs writing:
       does not show the contents of new files until later.
 
 Available Patches:
-
    * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
      performance
        Status: These were written for 1.3, and are awaiting a port to