STATUS revision 40a5b7189dbbb28e107bf008ee625f2f0142c2cc
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaApache 2.0 STATUS:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaLast modified at [$Date: 2000/03/02 09:57:28 $]
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaRelease:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Vague plan, assuming more features aren't demanded for the 2.0 release
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina 2.0a1 : March 2000
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina 2.0 : later in 2000
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaRELEASE SHOWSTOPPERS:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Fix SAFEREAD
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Fix lingering close
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * MPMs should have responsibility for closing sockets and
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina registering the socket cleanup. Stop registering multiple
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina cleanups for each socket. Move socket close code out of
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina http_connection.c and into the MPMs.
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Reliable piped logs look broken everywhere. Each MPM includes essentially
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina identical code to ap_register_other_child(), etc. Most of this code can
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek be moved out of the MPMs and into some common file (http_core.c?).
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Dean says presumably you mean an os-specific file?
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * DSO hooks registered during the preflight call to ap_read_config
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek are not 'unregistered' during the preflight clean-up. Thus, when
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Apache comes up, the hook tables contain two entries for each DSO hook,
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek one of which is bogus, leftover from the preflight.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Pipes to CGI scripts are not being timed out
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina Status: code has been added to APR to support timing out pipes.
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina This needs to be used in Apache now.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Put back resource limit code
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * suEXEC doesn't work
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status: Manoj has posted an patch to fix this.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek <19991103003605.A20612@samosa.mindspring.com>
080e1bfb72ed0e8d96e390d83ad35eaba79bd450René Genz
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Enable the Windows MPM to honor max_requests_per_child
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status: Bill will fix this.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * Win32: Fix Win9* specific code in the winnt MPM
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Test access logging with multiple threads. Will the
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina native file I/O calls serialize automagically like the
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek CRT calls or do we need to add region locking each time
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek we access the logs?
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Smoke test all ported modules to make sure they work
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina correctly under Windows.
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Current 2.0 code is not tested on many Unix platforms. Make 2.0
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek work on most, if not all the systems 1.3 did
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status: Autoconf and APR will get us most of the way there.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * The module API is a weird combination of the old table and the new
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek hook system. Switch completely to the new hook system
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status: Ben Laurie is working on this.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Modules. Which modules do not work yet, can we get a list?
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * We need a thread-safe resolver, at least on Unix.
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status: The best known candidate would be something from BIND
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek (v8 or v9?) The only other option would be to mutex all the
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek resolver calls,
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub HrozekRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * "make distclean" leaves (at least these) turds:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/.deps
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/apr/.deps
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/apr/shmem/unix/mm/config.log
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/apr/shmem/unix/mm/mm_conf.h
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/apr/shmem/unix/mm/libtool
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/apr/shmem/unix/mm/config.status
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek lib/apr/shmem/unix/mm/Makefile
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina lib/apr/shmem/unix/mm/mm-config
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek main/a
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek modules/.deps
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina modules/mpm/.deps
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina os/.deps
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * apaci permissions problem:
a02a5ed51178b2cbede0396d66aed716b8898096René Genz cvs checkout apache-2.0
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek cd apache-2.0/src
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek ./configure
a02a5ed51178b2cbede0396d66aed716b8898096René Genz edit some Makefile.in
a02a5ed51178b2cbede0396d66aed716b8898096René Genz ./config.status
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina now apaci is no longer executable and future makes fail
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Reuse accept socket after transmitfile/close
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek This is not a bug, but would be nice to get this feature in
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek before ship.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Enable the winnt MPM to use the new scoreboard API
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Non-blocking CGI pipes
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Graceful restart of a service is broken (code does shutdown then start)
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Dynamically loadable MPMs
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Enable users of the binary distributions of Apache to be able to
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek dynamically load the MPM.
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina Dean says this probably isn't a good idea. For example consider
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina -lpthread, you couldn't have the same core run with pthreads,
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina prefork, and gnu pth without a lot of headaches is my guess.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina * Platforms that do not support fork (primarily Win32 and AS/400)
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina Consider introducing HAVE_FORK feature macro. Architect start-up code
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina that avoids initializing all the modules in the parent process on
f643754db81eeade60485bbe3d80324d889cc4f3Pavel Březina platforms that do not support fork.
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Clean the code. There are a lot of places we used APR but didn't
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek remove the hacks that were required for the cross-platform code in
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek 1.3. We need to make the code look like APR was supposed to be there.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Go throught the Bug DB and research the bugs marked "suspended". People
a02a5ed51178b2cbede0396d66aed716b8898096René Genz were told these would be considered for inclusion in Apache 2.0, it
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek would be nice to actually do so.
a02a5ed51178b2cbede0396d66aed716b8898096René Genz
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina * Win32: Migrate the MPM over to use APR thread/process calls. This
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina would eliminate some code in the Win32 branch that essentially
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina duplicates what is in APR.
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina Status: Bill <stoddard@raleigh.ibm.com> is working on this.
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina * Move I/O layering into APR.
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina * There are still a number of places in the code where we are
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina loosing error status (i.e. throwing away the error returned by a
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina system call and replacing it with a generic error code)
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina * Win32: Implement reliable piped logs on Windows
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina reliable) in 1.3. Should be much cleaner with APR in 2.0.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina * Switch to autoconf, et al. for configuration.
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina Status: Manoj has placed an initial version into the 2.0
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina repository. Todos include:
60a729bfa2aee7529a0c9a276057a47a80381994Pavel Březina
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina - "make install" should work
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina - a tool to simplfy third-party module building should be
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek written. Something like apxs
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina - Add a lot more checks to satisfy the various platforms, e.g.
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina for threading
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina * Use APR to get rid of more platform dependancies.
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
9c6b680e55e00642bc3e644fd63e18e6c09ff110Pavel Březina
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * The connection status table is not very efficient. Also, very few stats
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek are exported to the connection status table (easy to fix), and mod_status
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek is ugly.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub HrozekOther bugs that need fixing:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * MaxRequestsPerChild measures connections, not requests.
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Until someone has a better way, we'll probably just rename it
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek "MaxConnectionsPerChild".
080e1bfb72ed0e8d96e390d83ad35eaba79bd450René Genz
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Regex containers don't work in an intutive way
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status: No one has come up with an efficient way to fix this
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek behavior. Dean has suggested getting rid of regex containers
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek completely.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek sigwaiting thread. We need to work around this, perhaps unless
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek there is hope soon for a fixed glibc.
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
60a729bfa2aee7529a0c9a276057a47a80381994Pavel BřezinaOther features that need writing:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Finish infrastructure in core for async MPMs
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status: post 2.0
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * TODO in source -- just do an egrep on "TODO" and see what's there
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaDocumentation that needs writing:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * The concept of MPMs, especially if we ship more than one MPM for a
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek given platform
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * New directives in the various MPMs
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * API documentation
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status: Ben Laurie has written some hooks documentation
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina (apache-2.0/htdocs/hooks.html)
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Changes since 1.3.9 can be more easily seen in the commitlog file
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina 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.