Apache 2.0 STATUS:
Last modified at [$Date: 2000/03/08 21:36:39 $]
Vague plan, assuming more features aren't demanded for the 2.0 release
2.0a1 : March 2000
2.0 : later in 2000
* New BugDB
* Tag the tree
* Fix SAFEREAD
* Fix lingering close
* MPMs should have responsibility for closing sockets and
registering the socket cleanup. Stop registering multiple
cleanups for each socket. Move socket close code out of
http_connection.c and into the MPMs.
* Reliable piped logs look broken everywhere. Each MPM includes essentially
identical code to ap_register_other_child(), etc. Most of this code can
be moved out of the MPMs and into some common file (http_core.c?).
Dean says presumably you mean an os-specific file?
* DSO hooks registered during the preflight call to ap_read_config
are not 'unregistered' during the preflight clean-up. Thus, when
Apache comes up, the hook tables contain two entries for each DSO hook,
one of which is bogus, leftover from the preflight.
* 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
* suEXEC doesn't work
Status: Manoj has posted an patch to fix this.
* Win32: Enable the Windows MPM to honor max_requests_per_child
Status: Bill will fix this.
* Win32: Fix Win9* specific code in the winnt MPM
* Win32: 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 access the logs?
* Win32: Smoke test all ported modules to make sure they work
correctly under Windows.
* 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
RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
* "make distclean" leaves (at least these) turds:
* apaci permissions problem:
cvs checkout apache-2.0
edit some Makefile.in
now apaci is no longer executable and future makes fail
* the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
to set -Wall/etc. flags, and the APR configure.in appears to use
--with-debug. both seem like more of a hardwired pain compaired
to the pre-2.0 method of setting EXTRA_CFLAGS.
* Win32: Reuse accept socket after transmitfile/close
This is not a bug, but would be nice to get this feature in
* Win32: Enable the winnt MPM to use the new scoreboard API
* Win32: Non-blocking CGI pipes
* Win32: Graceful restart of a service is broken (code does shutdown then start)
* Dynamically loadable MPMs
Enable users of the binary distributions of Apache to be able to
dynamically load the MPM.
Dean says this probably isn't a good idea. For example consider
-lpthread, you couldn't have the same core run with pthreads,
prefork, and gnu pth without a lot of headaches is my guess.
* Platforms that do not support fork (primarily Win32 and AS/400)
Consider introducing HAVE_FORK feature macro. Architect start-up code
that avoids initializing all the modules in the parent process on
platforms that do not support fork.
* 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 <firstname.lastname@example.org> 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)
* Win32: Implement reliable piped logs on Windows
Status: Bill <email@example.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:
- "make install" 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.
* Use APR to get rid of more platform dependancies.
Status: Ryan Bloom <firstname.lastname@example.org> 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
Other bugs that need fixing:
* MaxRequestsPerChild measures connections, not requests.
Until someone has a better way, we'll probably just rename it
* 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
* SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
sigwaiting thread. We need to work around this, perhaps unless
there is hope soon for a fixed glibc.
Other features that need writing:
* Finish infrastructure in core for async MPMs
Status: post 2.0
* TODO in source -- just do an egrep on "TODO" and see what's there
Documentation that needs writing:
* The concept of MPMs, especially if we ship more than one MPM for a
* New directives in the various MPMs
* API documentation
Status: Ben Laurie has written some hooks documentation
* Changes since 1.3.9 can be more easily seen in the commitlog file
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.
* Mike Abbott's <email@example.com> patches to improve
Status: These were written for 1.3, and are awaiting a port to
* 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.