Return-Path: Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 13590 invoked by uid 6000); 2 Aug 1999 03:39:51 -0000 Received: (qmail 13371 invoked from network); 2 Aug 1999 03:39:46 -0000 Received: from i.meepzor.com (HELO Mail.MeepZor.Com) (cvs@204.146.167.214) by taz.hyperreal.org with SMTP; 2 Aug 1999 03:39:46 -0000 Received: (from cvs@localhost) by Mail.MeepZor.Com (8.8.7/8.8.7) id XAA16051; Sun, 1 Aug 1999 23:45:09 -0400 Date: Sun, 1 Aug 1999 23:45:09 -0400 Message-Id: <199908020345.XAA16051@Mail.MeepZor.Com> From: Rodent of Unusual Size To: Apache HTTP developers Subject: [STATUS] (apache-apr) Sun Aug 1 23:45:09 EDT 1999 X-Note: This is an automated message. Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org Status: O Apache Portable Runtime STATUS: Last modified at [$Date: 1999/07/28 22:53:12 $] 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: Modules Ensure thread safety. Does not include mod_proxy, yet. Modules that don't work: mod_digest.c -- Don't bother with this until the new mod_digest code gets incorporated. 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: With AIX 4.2, if MaxRequestsPerChild is low (e.g. 5) and ThreadsPerChild is high (e.g. 64), the signal delivered to sigwait gets dropped on the floor. The hypothesis is that the signals blocked by pthread_sigmask aren't kept pending as they should be, so when worker threads exit quickly and signal the sigwait thread before the sigwait() call has been entered, the thread never gets the signal. Min and MaxSpareServers don't allow fine enough granularity to specify the number of idle threads needed. For example, if ThreadsPerChild is 200, we probably don't need all 200 threads to be idle, yet that is the minimum allowed right now. A patch was committed to the pthread MPM to use Min/MaxSpareThreads instead; it should be moved to this repository soon if no one has problems. Open issues: * Optimize Optimize Optimize FEATURE SET FOR HYBRID SERVER 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_mmap_static.c Mod_proxy