httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rodent of Unusual Size <Ken.C...@Golux.Com>
Subject [STATUS] (apache-apr) Wed Apr 7 23:45:25 EDT 1999
Date Thu, 08 Apr 1999 03:45:26 GMT
Apache Portable Runtime STATUS:
Last modified at [$Date: 1999/04/08 08:53:46 $]

Release:

    0.1  : In pre-alpha development

Plan:

    Everyone discuss and wrangle out the issues on new-httpd,
    and commit changes as appropriate.

Showstoppers:
Committed Code Changes:

    . docs/ directory created and initial function pre-spec added
    . include/ directory created and start of APRStatus macros added
    . pthreads/ directory tree created and populated with latest
      work on Apache 1.3.5-dev port to pthreads inserted

Available Patches:
In progress:
    Logging statements
        We have some comments along the lines of "log this here".
        Let's actually make those logs at some point. 

    Modules
        Ensure thread safety.  Does not include mod_proxy, yet.
	Modules that don't work:
            mod_digest.c     --Anybody have a client that can transmit Digest
			       Auth?
	    mod_info.c       --DOES NOT WORK AT ALL! 

	Questionable modules: (Not tested.)         
	    mod_log_agent.c   -- Are we keeping these in 2.0 after Ken's
            mod_log_referer.c -- mod_log_config changes.  If yes, I'll test
			      -- them later.
    
    Warning scrubbing
        Get rid of all reasonable warnings with the strictest compiler flags,
        to help weed out bugs

    Everything

Needs patch:

    On Red Hat 5.2, with a very low MaxRequestsPerChild (e.g. 10), when the
    server is banged on with ApacheBench, occasionally, the main thread of a
    process hangs around in pthread_exit_process. The size of that process is
    always around 11M. This bug is also exhibited by sending lots of SIGHUPs
    to the parent process rapidly (but not SIGWINCHes). The suspicion is that
    this is either an error in how pthread calls are used in the server, or a
    libc bug (the last refuge of a desperate programer).

Open issues:

  * Whether every APR routine should return a status code
  * What the status codes should look like
  * Bringing in the libap stuff

  * Optimize Optimize Optimize

  FEATURE SET FOR APR

Closed issues:
    Accept Thread Serialization
        Implemented as a blocking queue.  1 accept thread passes connection
        to queue (size of queue is config directive, default # of threads).
        All other threads block on queue.
    Process/Thread hybridization
        put monitor process back into place.  Was removed for initial port, 
	it's time we make sure the server is running, and if not, start 
	it again.
    Bringing this code up-to-date with the changes in the 1.3 branch.
        It's now up-to-date as of the morning of Feb 6th, 1999.
    Scoreboard
	Design the scoreboard appropriately for a hybrid process web
	server. This includes adding a tid field to the scoreboard.
    Signal Handling
        Investigate signal handling in Apache-pthreads.  SIGUSR1 is not a
	usable signal on Linux 2.0, because pthreads uses it to communicate
	between threads.  SIGWINCH was used for graceful restarts.
    Process/thread management
        Put (back) in the logic to manage the number of processes.
	Managing threads per process other than with a configuration
	constant is in doubt.
    Accept Serialization across Processes
	We now use one mutex per socket.
    Timeouts.  (only soft timeouts)
	Keepalive and Initail Conection timeouts are done.  Are there others?
	CGI?
    Modules that work:
        mod_env.c mod_negotiation.c mod_autoindex.c mod_dir.c mod_cgi.c 
        mod_actions.c mod_speling.c mod_userdir.c mod_alias.c 
        mod_expires.c mod_headers.c mod_so.c mod_setenvif.c 
        mod_auth_anon.c mod_access.c mod_include.c mod_imap.c 
        mod_log_config.c mod_asis.c mod_rewrite.c mod_mime.c 
        mod_usertrack.c mod_unique_id.c mod_cern_meta.c
        mod_auth.c (I'm assuming mod_auth* also work)
        mod_mime_magic.c mod_status.c 
    Mod_proxy

Mime
View raw message