summaryrefslogtreecommitdiffstats
path: root/STATUS
blob: 8c55065c7f2db4623a8ae36f6cf2132455aac0d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
Apache 2.0 STATUS:
Last modified at [$Date: 1999/11/19 18:59:48 $]

Release:

    2.0: In pre-alpha development

Plan:

    * Vague goal of an alpha or beta release in 1999. Commit-then-review
      is active.

RELEASE SHOWSTOPPERS:

    * Complete HAVE_SENDFILE work. Need to add iovec head and tail pointers to 
      the iol sendfile API and make it work under Unix.
        Status: Bill <stoddard@raleigh.ibm.com> is working on this

    * 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.

    * Port mod_rewrite
        Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.

    * Port mod_mime_magic
        Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.

    * suEXEC doesn't work
        Status: Manoj has posted an patch to fix this.
        <19991103003605.A20612@samosa.mindspring.com>

    * Windows NT port isn't done
        Status: Bill  <stoddard@raleigh.ibm.com> is working on MPM and APR. 
	Remaining work:
        1. Add back ability to run Apache as a service
        2. Fix Win9* specific code in the winnt MPM
        3. Get the MPM working in multi process mode (one parent & one child)
        4. 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 write to the access/error logs?

    * 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?

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

    * 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 <stoddard@raleigh.ibm.com> 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)

    * APRize the stat function. CRT stat() is about 30% slower on Windows than
      the equivalent native Windows call. The APR call should return the Unix
      style stat structure, just to keep it familier.

    * Implement reliable piped logs on Windows
        Status: Bill <stoddard@raleigh.ibm.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.

    * Use APR to get rid of more platform dependancies.
        Status: Ryan Bloom <rbb@raleigh.ibm.com> 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
      is ugly.

Other bugs that need fixing:

    * MaxRequestsPerChild measures connections, not requests.
        Until someone has a better way, we'll probably just rename it
        "MaxConnectionsPerChild".
    
    * 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
        completely.

    * SIGSEGV on Linux seems to only kill a thread, not a whole process;
      we need to work around this, probably by bouncing the signal to
      the sigwait thread. But this will hurt debugability.

Other features that need writing:

    * Finish infrastructure in core for async MPMs
        Status: ?

    * TODO in source -- just do an egrep on "TODO" and see what's there

    * Work on other MPMs. Possible MPMs discussed or in progress include:

      - Dean Gaudet's async MPM
          Status: ?

      - Zach Brown's <zab@zabbo.net> Linux siginfo MPM
          Status: ?

Documentation that needs writing:

    * The concept of MPMs, especially if we ship more than one MPM for a
      given platform

    * New directives in the various 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.