You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Rodent of Unusual Size <Ke...@Golux.Com> on 1999/12/16 17:29:20 UTC

[STATUS] (apache-2.0) Thu Dec 16 11:29:19 EST 1999

Apache 2.0 STATUS:
Last modified at [$Date: 1999/12/13 15:46:45 $]

Release:

    2.0: In pre-alpha development

Plan:

    * Vague goal of an alpha or beta release in 1999. Commit-then-review
      is active.

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 <st...@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.

    * Put back resource limit code

    * Port mod_rewrite
        Status: Paul Reder <re...@raleigh.ibm.com> is working on this.

    * Port mod_mime_magic
        Status: Paul Reder <re...@raleigh.ibm.com> is working on this.

    * suEXEC doesn't work
        Status: Manoj has posted an patch to fix this.
        <19...@samosa.mindspring.com>

    * Windows NT port isn't done
        Status: Bill  <st...@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. 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?
        4. Fix the DOS hole in AcceptEx (need to time out connections over
           which data is never sent).

    * 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.

    * 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,

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

    * 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.

    * 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 <st...@raleigh.ibm.com> is working on this.

    * 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)

    * 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.

    * Implement reliable piped logs on Windows
        Status: Bill <st...@raleigh.ibm.com> has prototype code (not reliable) in 1.3. 
        Should be much cleaner with APR in 2.0.

    * 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
          - 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 <rb...@raleigh.ibm.com> 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.

Other bugs that need fixing:

    * MaxRequestsPerChild measures connections, not requests.
        Until someone has a better way, we'll probably just rename it
        "MaxConnectionsPerChild".
    
    * Regex containers don't work in an intutive way
        Status: No one has come up with an efficient way to fix this
        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.

Other features that need writing:

    * Finish infrastructure in core for async MPMs
        Status: ?

    * 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 <za...@zabbo.net> Linux siginfo MPM
          Status: ?

Documentation that needs writing:

    * The concept of MPMs, especially if we ship more than one MPM for a
      given platform

    * New directives in the various MPMs

    * API documentation
        Status: Ben Laurie has written some hooks documentation
        (apache-2.0/htdocs/hooks.html)

    * Changes since 1.3.9 can be more easily seen in the commitlog file
         dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
      which includes some of Roy's comments when the changes were
      committed in rough change-sets by purpose.  Note that the commitlog
      does not show the contents of new files until later.

Available Patches:

   * Mike Abbott's <mj...@trudge.engr.sgi.com> patches to improve
     performance
       Status: These were written for 1.3, and are awaiting a port to
       2.0

Open issues:

   * What do we do about mod_proxy?

   * Which MPMs will be included with Apache 2.0?

   * Is conf/highperformance.conf-dist obsolete?  It looks obsolete.