STATUS revision 40a5b7189dbbb28e107bf008ee625f2f0142c2cc
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaApache 2.0 STATUS:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaLast modified at [$Date: 2000/03/02 09:57:28 $]
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řezinaRELEASE SHOWSTOPPERS:
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Fix SAFEREAD
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina * Fix lingering close
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 * 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 * 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.
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 * Put back resource limit code
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>
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Enable the Windows MPM to honor max_requests_per_child
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status: Bill will fix this.
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * Win32: Fix Win9* specific code in the winnt MPM
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 * Win32: Smoke test all ported modules to make sure they work
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina correctly under Windows.
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.
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 * Modules. Which modules do not work yet, can we get a list?
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 HrozekRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * "make distclean" leaves (at least these) turds:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek modules/.deps
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * apaci permissions problem:
a02a5ed51178b2cbede0396d66aed716b8898096René Genz cvs checkout apache-2.0
46d3d2c731e8c7e138462e5b60a39a279dc77d81Pavel Březina now apaci is no longer executable and future makes fail
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 * Win32: Enable the winnt MPM to use the new scoreboard API
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Non-blocking CGI pipes
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Win32: Graceful restart of a service is broken (code does shutdown then start)
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 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.
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.
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 * 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.
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 * Move I/O layering into APR.
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 * 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.
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:
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 * Use APR to get rid of more platform dependancies.
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
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 HrozekOther bugs that need fixing:
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".
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 * 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.
60a729bfa2aee7529a0c9a276057a47a80381994Pavel BřezinaOther features that need writing:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * Finish infrastructure in core for async MPMs
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek Status: post 2.0
968e2bc3bb28458b25c3b19868ea50f0325d8b0aPavel Březina * TODO in source -- just do an egrep on "TODO" and see what's there
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel BřezinaDocumentation that needs writing:
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * The concept of MPMs, especially if we ship more than one MPM for a
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek given platform
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * New directives in the various MPMs
f660877b38e563c4aa0cb1431624069808873fecJakub Hrozek * API documentation
6f701a4dc295ddc997ba5190a3cd72d948d799dcPavel Březina Status: Ben Laurie has written some hooks documentation
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
* Is conf/highperformance.conf-dist obsolete? It looks obsolete.