STATUS revision 15c8743834149d76e0e811843d1c682103bd0aa4
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingApache 2.0 STATUS:
f3091cedd4abeda1026d9117c34e8f625754e8aefieldingLast modified at [$Date: 2000/05/01 21:52:18 $]
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding 2.0a3 : vague plans to release in April sometime.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding 2.0a2 : released March 31, 2000
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding 2.0a1 : released March 10, 2000
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingRELEASE SHOWSTOPPERS:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Get mod_auth_digest working under win32
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding - APR_HAS_RANDOM should be defined on windows and there is a
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding lib/apr/misc/win32/rand.c which is basically a copy of what
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding mod_auth_digest used to use.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Re-work configuration for top level Apache. Work should start with
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding trying to clean the autoconf stuff. If and only if this proves
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding impossible to do (very unlikely), autoconf should be removed and we
f3091cedd4abeda1026d9117c34e8f625754e8aefielding will roll our own config implementation.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding NOTE: When this is implemented, it would be really nice if the
f3091cedd4abeda1026d9117c34e8f625754e8aefielding default cgi module on Unix with a threaded MPM is the cgid
f3091cedd4abeda1026d9117c34e8f625754e8aefielding module. This should be override-able of course.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding Status: Jim Jagielski is looking into this.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Fix SAFEREAD.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding see <Pine.LNX.4.21.0004101511380.7822-100000@twinlark.arctic.org>
f3091cedd4abeda1026d9117c34e8f625754e8aefielding * MPMs should have responsibility for closing sockets and
f3091cedd4abeda1026d9117c34e8f625754e8aefielding registering the socket cleanup. Stop registering multiple
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding cleanups for each socket. Move socket close code out of
f3091cedd4abeda1026d9117c34e8f625754e8aefielding http_connection.c and into the MPMs.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Reliable piped logs look broken everywhere. Each MPM includes essentially
f3091cedd4abeda1026d9117c34e8f625754e8aefielding identical code to ap_register_other_child(), etc. Most of this code can
f3091cedd4abeda1026d9117c34e8f625754e8aefielding be moved out of the MPMs and into some common file (http_core.c?).
f3091cedd4abeda1026d9117c34e8f625754e8aefielding Dean says presumably you mean an os-specific file?
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Put back resource limit code
f3091cedd4abeda1026d9117c34e8f625754e8aefielding * suEXEC doesn't work
f3091cedd4abeda1026d9117c34e8f625754e8aefielding Status: Manoj has posted an patch to fix this.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding <19991103003605.A20612@samosa.mindspring.com>
f3091cedd4abeda1026d9117c34e8f625754e8aefielding * Win32: Enable the Windows MPM to honor max_requests_per_child
f3091cedd4abeda1026d9117c34e8f625754e8aefielding Status: Bill will fix this.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Get Apache working on Windows 95/98. The following work
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding (at least) needs to be done:
f3091cedd4abeda1026d9117c34e8f625754e8aefielding - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
f3091cedd4abeda1026d9117c34e8f625754e8aefielding specific code that is still not in NT only code paths
f3091cedd4abeda1026d9117c34e8f625754e8aefielding - APR sendfile uses TransmitFile which is not available on
f3091cedd4abeda1026d9117c34e8f625754e8aefielding - ap_stat uses GetFileAttributeEx which is not available on
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Test access logging with multiple threads. Will the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding native file I/O calls serialize automagically like the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding CRT calls or do we need to add region locking each time
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding we access the logs?
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * The handler hook needs to use the new registration system
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * We need a thread-safe resolver, at least on Unix.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Status: The best known candidate would be something from
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Switch from HSRegex to PCRE. New code should be src/lib/pcre/
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Status: Greg +1
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding to set -Wall/etc. flags, and the APR configure.in appears to use
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding --with-debug. both seem like more of a hardwired pain compaired
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding to the pre-2.0 method of setting EXTRA_CFLAGS.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Reuse accept socket after transmitfile/close
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding This is not a bug, but would be nice to get this feature in
d0a46853bff16e9598a3298f262b0d3fd58d6c53martin before ship.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Enable the winnt MPM to use the new scoreboard API
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Graceful restart of a service is broken (code does shutdown then start)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Dynamically loadable MPMs
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Enable users of the binary distributions of Apache to be able to
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding dynamically load the MPM.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Dean says this probably isn't a good idea. For example consider
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -lpthread, you couldn't have the same core run with pthreads,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding prefork, and gnu pth without a lot of headaches is my guess.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Platforms that do not support fork (primarily Win32 and AS/400)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Consider introducing HAVE_FORK feature macro. Architect start-up code
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding that avoids initializing all the modules in the parent process on
878c5eb6d9ffca5069d9f140184a133723000f0cwrowe platforms that do not support fork.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Clean the code. There are a lot of places we used APR but didn't
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding remove the hacks that were required for the cross-platform code in
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb 1.3. We need to make the code look like APR was supposed to be there.
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb People were told these would be considered for inclusion in Apache 2.0,
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb it would be nice to actually do so.
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * Win32: Migrate the MPM over to use APR thread/process calls. This
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb would eliminate some code in the Win32 branch that essentially
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding duplicates what is in APR.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Bill says we need a new procattr, APR_CREATE_SUSPENDED (or
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein something similar) to direct ap_create_process to create the
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein process suspended. We also need a call to wake up the suspended
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb process This may not be able to be implemented everywhere though.
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein * Move I/O layering into APR.
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein * There are still a number of places in the code where we are
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein loosing error status (i.e. throwing away the error returned by a
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein system call and replacing it with a generic error code)
1860b2b5f1de31f8cf9d95f1b394fe98c8dbfab7rbb * Win32: Implement reliable piped logs on Windows
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein * Switch to autoconf, et al. for configuration.
b980ad7fdc218b4855cde9f75a747527f50c554dwrowe Status: Manoj has placed an initial version into the 2.0
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb repository. Todos include:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding - a tool to simplfy third-party module building should be
bb65aeae7af1d33b64252bbc1b966942d757ac60wrowe written. Something like apxs
48d7c43629323c8d5ee9f7bd0d194de0a376b391rbb * Use APR to get rid of more platform dependancies.
bb65aeae7af1d33b64252bbc1b966942d757ac60wrowe Status: Ryan Bloom <rbb@covalenet.net> is working on this.
48d7c43629323c8d5ee9f7bd0d194de0a376b391rbb * The connection status table is not very efficient. Also, very few stats
bb65aeae7af1d33b64252bbc1b966942d757ac60wrowe are exported to the connection status table (easy to fix), and mod_status
bb65aeae7af1d33b64252bbc1b966942d757ac60wrowe * Optimise the name-based <VirtualHost> implementation so that it uses
cf721750997514b9cbed94bf3672ff6b3e2c2132trawick a hash table instead of a linear linked list scan.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Mass vhosting version of suEXEC.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Provide a sane API for handling the request's environment variables.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * configuration option to use *DBM
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Status: Greg +1 (volunteers)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * add SDBM into src/lib/sdbm/ as a default/fallback DBM implementation.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding SDBM is used by Perl, mod_dav, mod_sssl, others for basic DBM support.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Status: Greg +1 (volunteers)
c53a68af52e2428d833746388b412fb4793759b2trawickOther bugs that need fixing:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * MaxRequestsPerChild measures connections, not requests.
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm Until someone has a better way, we'll probably just rename it
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding "MaxConnectionsPerChild".
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * Regex containers don't work in an intutive way
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb Status: No one has come up with an efficient way to fix this
c53a68af52e2428d833746388b412fb4793759b2trawick behavior. Dean has suggested getting rid of regex containers
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb completely.
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb sigwaiting thread. We need to work around this, perhaps unless
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm there is hope soon for a fixed glibc.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingOther features that need writing:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Finish infrastructure in core for async MPMs
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb Status: post 2.0
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * TODO in source -- just do an egrep on "TODO" and see what's there
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingDocumentation that needs writing:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Mod_status docs are needed.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * The concept of MPMs, especially if we ship more than one MPM for a
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding given platform
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * New directives in the various MPMs and appropriate links from
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb obsolete directives in core.html to the MPM documentation.
06e2d72d72d35442e1ba8cfe9f343ac0fb2b8cffdreid * Revise manual/stopping.html and the last part of
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb manual/misc/perf-tuning.html to take account of the MPMs.
06e2d72d72d35442e1ba8cfe9f343ac0fb2b8cffdreid * API documentation
b7faa60a6790e84452c16e5dfb3bde2c52a1030dtrawick Status: Ben Laurie has written some hooks documentation
06e2d72d72d35442e1ba8cfe9f343ac0fb2b8cffdreid * Changes since 1.3.9 can be more easily seen in the commitlog file
446b877d2ab69d9bbcd9152a2d54814f05f1c00brbb which includes some of Roy's comments when the changes were
06e2d72d72d35442e1ba8cfe9f343ac0fb2b8cffdreid committed in rough change-sets by purpose. Note that the commitlog
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb does not show the contents of new files until later.
06e2d72d72d35442e1ba8cfe9f343ac0fb2b8cffdreidAvailable Patches:
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
b7faa60a6790e84452c16e5dfb3bde2c52a1030dtrawick performance
06e2d72d72d35442e1ba8cfe9f343ac0fb2b8cffdreid Status: These were written for 1.3, and are awaiting a port to
0bcc11df5f030cf62289599a25f5831913a4b438trawickOpen issues:
0bcc11df5f030cf62289599a25f5831913a4b438trawick * What do we do about mod_proxy?
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * Which MPMs will be included with Apache 2.0?
f4a8b04b47f09a21b65646b66b19c9649ff7f03arbb * Is conf/highperformance.conf-dist obsolete? It looks obsolete.