STATUS revision 8ac8f75b9d0076f5f115c65adf02e5a177a84378
341N/AApache 2.0 STATUS:
341N/ALast modified at [$Date: 2000/04/13 00:38:55 $]
1339N/A
341N/ARelease:
341N/A
919N/A 2.0a3 : vague plans to release in April sometime.
919N/A 2.0a2 : released March 31, 2000
919N/A 2.0a1 : released March 10, 2000
919N/A
919N/ARELEASE SHOWSTOPPERS:
919N/A * Re-work configuration for top level Apache. Work should start with
919N/A trying to clean the autoconf stuff. If and only if this proves
919N/A impossible to do (very unlikely), autoconf should be removed and we
919N/A will roll our own config implementation.
919N/A Status: Jim Jagielski is looking into this.
919N/A
919N/A * Put buffered file I/O back into APR. This should be done using the
919N/A buffering logic from the OS/2 directory. stdio FILE *'s should not be
919N/A used on Unix because of the limitations these impose on some platforms,
919N/A for example the 256 File * limit on Solaris.
919N/A
919N/A * Fix SAFEREAD.
341N/A see <Pine.LNX.4.21.0004101511380.7822-100000@twinlark.arctic.org>
341N/A
341N/A * MPMs should have responsibility for closing sockets and
341N/A registering the socket cleanup. Stop registering multiple
493N/A cleanups for each socket. Move socket close code out of
341N/A http_connection.c and into the MPMs.
341N/A Status:
1301N/A
341N/A * Reliable piped logs look broken everywhere. Each MPM includes essentially
911N/A identical code to ap_register_other_child(), etc. Most of this code can
1301N/A be moved out of the MPMs and into some common file (http_core.c?).
1301N/A Dean says presumably you mean an os-specific file?
1301N/A
911N/A * Pipes to CGI scripts are not being timed out
341N/A Status: code has been added to APR to support timing out pipes.
341N/A This needs to be used in Apache now.
1265N/A
341N/A * Put back resource limit code
341N/A
341N/A * suEXEC doesn't work
1179N/A Status: Manoj has posted an patch to fix this.
1233N/A <19991103003605.A20612@samosa.mindspring.com>
1265N/A
1265N/A * Win32: Enable the Windows MPM to honor max_requests_per_child
1179N/A Status: Bill will fix this.
688N/A
688N/A * Win32: Get Apache working on Windows 95/98. The following work
688N/A (at least) needs to be done:
688N/A - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
1179N/A specific code that is still not in NT only code paths
1179N/A - APR sendfile uses TransmitFile which is not available on
1179N/A 95/98.
688N/A - ap_stat uses GetFileAttributeEx which is not available on
688N/A 95/98
688N/A
688N/A Status:
688N/A
1265N/A * Win32: Test access logging with multiple threads. Will the
688N/A native file I/O calls serialize automagically like the
688N/A CRT calls or do we need to add region locking each time
688N/A we access the logs?
688N/A Status:
688N/A
1265N/A * Win32: Smoke test all ported modules to make sure they work
688N/A correctly under Windows.
688N/A Status:
1265N/A
688N/A * Current 2.0 code is not tested on many Unix platforms. Make 2.0
688N/A work on most, if not all the systems 1.3 did
688N/A Status: Autoconf and APR will get us most of the way there.
688N/A
1265N/A * The handler hook needs to use the new registration system
996N/A
1179N/A * Modules. Which modules do not work yet, can we get a list?
688N/A
688N/A * We need a thread-safe resolver, at least on Unix.
688N/A Status: The best known candidate would be something from
688N/A BIND v9.
688N/A
688N/ARELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
688N/A * Configuration Modules. Allow a new module type that reads
688N/A a config file and sets up an internal tree structure for
688N/A configuration.
688N/A
1146N/A * "make distclean" leaves (at least these) turds:
688N/A lib/.deps
688N/A lib/apr/.deps
688N/A lib/apr/shmem/unix/mm/config.log
688N/A lib/apr/shmem/unix/mm/mm_conf.h
688N/A lib/apr/shmem/unix/mm/libtool
816N/A lib/apr/shmem/unix/mm/config.status
1064N/A lib/apr/shmem/unix/mm/Makefile
341N/A lib/apr/shmem/unix/mm/mm-config
341N/A main/a
341N/A modules/.deps
341N/A modules/mpm/.deps
1339N/A os/.deps
1339N/A
1339N/A * the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
1339N/A to set -Wall/etc. flags, and the APR configure.in appears to use
970N/A --with-debug. both seem like more of a hardwired pain compaired
970N/A to the pre-2.0 method of setting EXTRA_CFLAGS.
970N/A
970N/A * Win32: Reuse accept socket after transmitfile/close
970N/A This is not a bug, but would be nice to get this feature in
970N/A before ship.
970N/A
970N/A * Win32: Enable the winnt MPM to use the new scoreboard API
970N/A
970N/A * Win32: Non-blocking CGI pipes
970N/A
970N/A * Win32: Graceful restart of a service is broken (code does shutdown then start)
970N/A
1029N/A * Dynamically loadable MPMs
1029N/A Enable users of the binary distributions of Apache to be able to
970N/A dynamically load the MPM.
341N/A
341N/A Dean says this probably isn't a good idea. For example consider
493N/A -lpthread, you couldn't have the same core run with pthreads,
969N/A prefork, and gnu pth without a lot of headaches is my guess.
341N/A
341N/A * Platforms that do not support fork (primarily Win32 and AS/400)
493N/A Consider introducing HAVE_FORK feature macro. Architect start-up code
1064N/A that avoids initializing all the modules in the parent process on
1029N/A platforms that do not support fork.
341N/A
341N/A * Clean the code. There are a lot of places we used APR but didn't
341N/A remove the hacks that were required for the cross-platform code in
341N/A 1.3. We need to make the code look like APR was supposed to be there.
493N/A
341N/A * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
1064N/A People were told these would be considered for inclusion in Apache 2.0,
341N/A it would be nice to actually do so.
341N/A
1029N/A * Win32: Migrate the MPM over to use APR thread/process calls. This
1029N/A would eliminate some code in the Win32 branch that essentially
1029N/A duplicates what is in APR.
341N/A
965N/A Bill says we need a new procattr, APR_CREATE_SUSPENDED (or
965N/A something similar) to direct ap_create_process to create the
1196N/A process suspended. We also need a call to wake up the suspended
1196N/A process This may not be able to be implemented everywhere though.
1196N/A
851N/A Status:
851N/A
851N/A * Move I/O layering into APR.
851N/A
851N/A * There are still a number of places in the code where we are
341N/A loosing error status (i.e. throwing away the error returned by a
493N/A system call and replacing it with a generic error code)
341N/A
341N/A * Win32: Implement reliable piped logs on Windows
341N/A Status:
341N/A
341N/A * Switch to autoconf, et al. for configuration.
341N/A Status: Manoj has placed an initial version into the 2.0
341N/A repository. Todos include:
493N/A
341N/A - "make install" should work
341N/A - a tool to simplfy third-party module building should be
341N/A written. Something like apxs
341N/A - Add a lot more checks to satisfy the various platforms, e.g.
341N/A for threading
493N/A
493N/A * Use APR to get rid of more platform dependancies.
493N/A Status: Ryan Bloom <rbb@covalenet.net> is working on this.
493N/A
341N/A * The connection status table is not very efficient. Also, very few stats
341N/A are exported to the connection status table (easy to fix), and mod_status
341N/A is ugly.
922N/A
922N/AOther bugs that need fixing:
910N/A
970N/A * MaxRequestsPerChild measures connections, not requests.
970N/A Until someone has a better way, we'll probably just rename it
963N/A "MaxConnectionsPerChild".
963N/A
970N/A * Regex containers don't work in an intutive way
970N/A Status: No one has come up with an efficient way to fix this
970N/A behavior. Dean has suggested getting rid of regex containers
922N/A completely.
922N/A
922N/A * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
851N/A sigwaiting thread. We need to work around this, perhaps unless
851N/A there is hope soon for a fixed glibc.
851N/A
341N/AOther features that need writing:
851N/A
922N/A * Finish infrastructure in core for async MPMs
851N/A Status: post 2.0
963N/A
970N/A * TODO in source -- just do an egrep on "TODO" and see what's there
963N/A
963N/ADocumentation that needs writing:
963N/A * Mod_status docs are needed.
963N/A
963N/A * The concept of MPMs, especially if we ship more than one MPM for a
963N/A given platform
963N/A
* 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
(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 <mja@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.