1 APACHE 2.4 STATUS: -*- mode: text; coding: utf-8 -*-
2 Last modified at [$Date$]
4 The current version of this file can be found at:
6 * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x/STATUS
8 Documentation status is maintained separately and can be found at:
10 * docs/STATUS in this source tree, or
11 * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x/docs/STATUS
13 The current development branch of this software can be found at:
15 * http://svn.apache.org/repos/asf/httpd/httpd/trunk
17 Consult the following STATUS files for information on related projects:
19 * http://svn.apache.org/repos/asf/apr/apr/trunk/STATUS
20 * http://svn.apache.org/repos/asf/apr/apr/branches/1.4.x/STATUS
21 * http://svn.apache.org/repos/asf/apr/apr-util/branches/1.4.x/STATUS
22 * http://svn.apache.org/repos/asf/apr/apr/branches/1.5.x/STATUS
23 * http://svn.apache.org/repos/asf/apr/apr-util/branches/1.5.x/STATUS
25 Patches considered for backport are noted in their branches' STATUS:
27 * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/STATUS
28 * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/STATUS
29 * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x/STATUS
34 [NOTE that x.{odd}.z versions are strictly Alpha/Beta releases,
35 while x.{even}.z versions are Stable/GA releases.]
37 2.4.26 : In development.
38 2.4.25 : Tagged on December 16, 2016. Released on December 21, 2016.
39 2.4.24 : Tagged on December 16, 2016, not released.
40 2.4.23 : Tagged on June 30, 2016. Released on July 05, 2016.
41 2.4.22 : Tagged on June 20, 2016, not released.
42 2.4.21 : Tagged on June 16, 2016, not released.
43 2.4.20 : Tagged on April 4, 2016. Released on April 11, 2016.
44 2.4.19 : Tagged on March 21, 2016, not released.
45 2.4.18 : Tagged on December 8, 2015. Released on December 14, 2015.
46 2.4.17 : Tagged on October 9, 2015. Released October 13, 2015.
47 2.4.16 : Tagged on July 9, 2015. Released July 15, 2015
48 2.4.15 : Tagged on June 19, 2015. Not released.
49 2.4.14 : Tagged on June 11, 2015. Not released.
50 2.4.13 : Tagged on June 4, 2015. Not released.
51 2.4.12 : Tagged on January 22, 2015. Released Jan 29, 2015
52 2.4.11 : Tagged on January 15, 2015. Not released.
53 2.4.10 : Tagged on July 15, 2014. Released July 21, 2014
54 2.4.9 : Tagged on March 13, 2014. Released on March 17, 2014
55 2.4.8 : Tagged on March 11, 2014. Not released.
56 2.4.7 : Tagged on November 19, 2013. Released on Nov 25, 2013
57 2.4.6 : Tagged on July 15, 2013. Released July, 22, 2013
58 2.4.5 : Tagged on July 11, 2013, not released.
59 2.4.4 : Tagged on February 18, 2013. Released Feb 25, 2013
60 2.4.3 : Tagged on August 17, 2012. Released Aug 18, 2012
61 2.4.2 : Tagged on April 5, 2012. Released Apr 17, 2012.
62 2.4.1 : Tagged on February 13, 2012. Released Feb 21, 2012.
63 2.4.0 : Tagged on January 16, 2012, not released.
64 2.3.16 : Tagged on December 15, 2011.
65 2.3.15 : Tagged on November 8, 2011. Released Nov. 15, 2011.
66 2.3.14 : Tagged on August 1, 2011. Released Aug. 9, 2011.
67 2.3.13 : Tagged on June 28, 2011, not released.
68 2.3.12 : Tagged on May 11, 2011. Released May 23, 2011.
69 2.3.11 : Released as Beta on March 7, 2011.
70 2.3.10 : Tagged on December 13, 2010. Released Dec 21, 2010.
71 2.3.9 : Tagged on November 23, 2010, not released.
72 2.3.8 : Tagged on August 24, 2010.
73 2.3.7 : Tagged on August 19, 2010, not released.
74 2.3.6 : Released on June 21, 2010.
75 2.3.5 : Released on January 26, 2010.
76 2.3.4 : Released on December 8, 2009.
77 2.3.3 : Tagged on November 11, 2009, not released.
78 2.3.2 : Tagged on March 23, 2009, not released.
79 2.3.1 : Tagged on January 2, 2009, not released.
80 2.3.0 : Tagged on December 6, 2008, not released.
82 Contributors looking for a mission:
84 * Just do an egrep on "TODO" or "XXX" in the source.
86 * Review the bug database at: http://issues.apache.org/bugzilla/
88 * Review the "PatchAvailable" bugs in the bug database:
90 https://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2&keywords=PatchAvailable
92 After testing, you can append a comment saying "Reviewed and tested".
94 * Open bugs in the bug database.
96 * See also the STATUS file in the docs/ directory, which lists documentation-specific TODO items.
99 CURRENT RELEASE NOTES:
101 * Forward binary compatibility is expected of Apache 2.4.x releases, such
102 that no MMN major number changes will occur after 2.4.1. Such changes can
103 only be made in the trunk.
105 * All commits to branches/2.4.x must be reflected in SVN trunk,
106 as well, if they apply. Logical progression is commit to trunk
107 then merge into branches/2.4.x, as applicable.
109 * Current exceptions for RTC for this branch:
114 . non-Unix, single-platform code
116 RELEASE SHOWSTOPPERS:
118 *) mod_proxy_hcheck: Honor checks in Vhosts
119 trunk patch: http://svn.apache.org/r1784203
120 http://svn.apache.org/r1784205
121 http://svn.apache.org/r1784227
122 http://svn.apache.org/r1784228
123 http://svn.apache.org/r1784275
124 http://svn.apache.org/r1785871
125 http://svn.apache.org/r1786009
126 http://svn.apache.org/r1789387
127 2.4.x patch: trunk works *after r1779573 above* (modulo CHANGES)
128 FULL hcheck patch: http://home.apache.org/~jim/patches/httpd2.4-hcheck.patch
129 http://svn.apache.org/r1789387
130 (includes all hcheck related patches, including showstopper)
132 ylavic: 'tpsize' needs to be reset (to HC_THREADPOOL_SIZE) in pre_config,
133 otherwise if mod_proxy_hcheck is builtin/static and for example
134 ProxyHCTPsize were commented out on restart, we wouldn't use the
135 default value (as expected).
136 jim: Committed in r1789387
138 *) confirm ab + https w/ openssl 1.1.0 on unix is OK.
139 Gregg says it's broken on Windows.
140 Document it somewhere either way.
141 jchampion: hangs on my Ubuntu box too. Looks like a CRYPTO_malloc()
142 infinite loop during library initialization?
145 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
146 [ start all new proposals below, under PATCHES PROPOSED. ]
149 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
150 [ New proposals should be added at the end of the list ]
152 *) mod_proxy, mod_ssl: Handle SSLProxy* directives in <Proxy> sections,
153 allowing per backend TLS configuration.
154 trunk patch: http://svn.apache.org/r1740928
155 http://svn.apache.org/r1740960
156 http://svn.apache.org/r1740967
157 http://svn.apache.org/r1740987
158 http://svn.apache.org/r1740998
159 http://svn.apache.org/r1742697
160 http://svn.apache.org/r1756976
161 http://svn.apache.org/r1781313
162 2.4.x patch: http://home.apache.org/~ylavic/patches/httpd-2.4.x-r1740928_and_co-v3.patch
165 *) mod_remoteip: Add PROXY protocol support
166 trunk patch: http://svn.apache.org/r1776575
167 http://svn.apache.org/r1776578 (doc fix)
168 http://svn.apache.org/r1776627 (shortened name + doc fix)
169 http://svn.apache.org/r1776674 (attribution moved to CHANGES)
170 http://svn.apache.org/r1776740 (attribution updated in mod_remotip.c)
171 http://svn.apache.org/r1778268 (fix compiler warning)
172 http://svn.apache.org/r1780725 (set buckets aside)
173 http://svn.apache.org/r1781030 (fix strict GCC warning)
174 http://svn.apache.org/r1781031 (reference the filter by handle)
175 http://svn.apache.org/r1781701 (rework optional processing case)
176 http://svn.apache.org/r1788674 (final edge cases/ignore slave conns)
177 http://svn.apache.org/r1789800 (remove optional processing)
178 http://svn.apache.org/r1790169 (rename "exception" directive)
179 http://svn.apache.org/r1790457 (Update directive name in err message)
180 2.4 convenience patch (includes CHANGES):
181 http://people.apache.org/~druggeri/patches/RemoteIPProxyProtocol.2.4.x.patch
184 *) mpm_winnt: always invoke ap_lingering_close() at connection end as in
185 all other mpm modules, giving everyone a chance to cleanup at prep
186 lingering close hook.
187 trunk patch: http://svn.apache.org/r1790973
188 trunk patch: http://svn.apache.org/r1790978
189 2.4.x patch: trunk works
192 * mod_journald: Add new module mod_journald to log error logs into journald.
193 trunk patch: http://svn.apache.org/r1610339
194 http://svn.apache.org/r1621806
195 2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-mod_journald.patch
197 jchampion: Looks like the headers require GCC extensions to compile, so
198 mod_journald can't be configured in maintainer mode (-std=c89).
199 Can anyone else reproduce, or is it just my distro?
201 * core: don't run configtest in -V mode when MPM DSOs are in use, and try to
202 print compile settings even if reading the configuration fails. Fixes
204 trunk patch: https://svn.apache.org/r1791975
205 2.4.x patch: trunk works
208 PATCHES/ISSUES THAT ARE BEING WORKED
209 [ New entried should be added at the START of the list ]
211 *) core: Disallow multiple Listen on the same IP:port when listener buckets
212 are configured (ListenCoresBucketsRatio > 0), consistently with the single
213 bucket case (default), thus avoiding the leak of the corresponding socket
214 descriptors on graceful restart.
215 trunk patch: http://svn.apache.org/r1789220
216 2.4.x patch: trunk works (modulo CHANGES)
219 *) mod_ssl: Return 502 instead of 500 when SSL peer check or
220 proxy_post_handshake hook fails.
221 Trunk patch: r1645529 (works)
222 2.4.x patch which adds CHANGES: https://emptyhammock.com/media/downloads/r1645529-to-2.4.x.txt
224 ylavic: there may be missing bits, see thread for commit r1736510.
226 *) core: Drop an invalid Last-Modified header value coming
227 from a (F)CGI script instead of replacing it with Unix epoch.
228 Warn the users about Last-Modified header value replacements
229 and violations of the RFC.
230 trunk patch: http://svn.apache.org/r1748379
231 http://svn.apache.org/r1750747
232 http://svn.apache.org/r1750749
233 http://svn.apache.org/r1750953
234 http://svn.apache.org/r1751138
235 http://svn.apache.org/r1751139
236 http://svn.apache.org/r1751147
237 http://svn.apache.org/r1757818
238 2.4.x: trunk patches work, final view:
239 http://home.apache.org/~elukey/httpd-2.4.x-core-last_modified_tz_logging.patch
240 The problem has been discussed in dev@ extensively but we did not reach a common
241 agreement about how to proceed in the long term. While we wait, I would really like
242 to introduce useful logs for the users (the starting point of this change was a users@
243 email thread). If this is not the right way to go I will move the patch to other
244 sections of STATUS (stalled or being worked).
245 The code has been tested with a simple PHP script returning different Last-Modified
246 headers (GMT now, GMT now Europe/Paris, GMT tomorrow, GMT yesterday, PST now).
249 *) http: Don't remove the Content-Length of zero from a HEAD response if
250 it comes from an origin server, module or script. Allow the previous
251 behaviour (for legacy/buggy modules only, not origin) by also backporting
252 the HttpContentLengthHeadZero directive (and also HttpExpectStrict which
253 comes for free with the same commit).
254 trunk patch: http://svn.apache.org/r1554303
255 http://svn.apache.org/r1678215
256 2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-preserve_head_cl_zero.patch
258 ylavic: r1554303 issued a major MMN bump, but since the ABI change is two
259 ints added at the end of core_server_config, the proposed merge
260 does a minor bump only.
261 minfrin: Two new directives need to be documented.
263 * mod_proxy_http: Don't establish or reuse a backend connection before pre-
264 fetching the request body, so to minimize the delay between it is supposed
265 to be alive and the first bytes sent: this is a best effort to prevent the
266 backend from closing because of idle or keepalive timeout in the meantime.
267 Also, handle a new "proxy-flushall" environment variable which allows to
268 flush any forwarded body data immediately. PR 56541+37920.
269 trunk patch: http://svn.apache.org/r1656259
270 http://svn.apache.org/r1656359 (CHANGES entry)
271 2.4.x patch: trunk works (modulo CHANGES, docs/log-message-tags)
273 -0: jim: This seems to be a hit to normal performance, to handle an
274 error and/or non-normal condition. The pre-fetch is
275 expensive, and is always done, even before we know that
276 the backend is available to rec' it. I understand the
277 error described, but is the fix actually worth it (plus
278 it seems to allow for a DDoS vector).
279 ylavic: It seems to me that the problem is real since we reuse the
280 connection before prefetching 16K (either controlled by the
281 client, or by an input filter), we currently always prefetch
282 these bytes already. Regarding performance I don't see any
283 difference (more cycles) compared with the current code.
284 However I think I failed to rebuild the header_brigade when
285 the proxy loop is retried (ping), so I need to rework this.
286 Do you think we'd better remove the prefetch, or maybe just
287 make it nonblocking (by default)?
288 jim: Non-blocking seems the best way to handle...
290 * mod_dav: Allow other modules to become providers and add ACLs
291 to the DAV response. Requires a release of apr-util v1.6.
292 trunk patch: http://svn.apache.org/r1748322
293 2.4.x: trunk works modulo CHANGES/MMN
295 rpluem asks: Will this compile with apr-util < v1.6 and keep
296 mod_dav working (without the new features of the patch of course)?
297 I doubt that we will require apr-util 1.6 for the lifetime of 2.4.x
298 (see the discussion around ap_cstr_casecmp[n] an apr 1.6)
299 minfrin: Yes, as you can see in the patch everything applies only
300 if APR_XML_X2T_PARSED is defined, and the patch was tested with
301 both apr-util v1.6 and apr-util v1.5.
302 -1: jorton, breaks binary backwards compat per dev@ discuss
303 msgid <20160902120654.GA12674@redhat.com>
304 (& also, making the structure change with apr-util version
305 means it breaks binary compat across an apr-util upgrade?)
307 * Support PCRE2 (10.x) in place of PCRE (8.x).
308 Submitted by: wrowe, Petr Pisar [ppisar redhat.com]
310 http://svn.apache.org/r1773454
311 http://svn.apache.org/r1773741
312 http://svn.apache.org/r1773742
313 http://svn.apache.org/r1773839
314 http://svn.apache.org/r1773870
315 http://svn.apache.org/r1773882
316 wrowe notes that the current code is too inefficient, owing to the fact
317 that the ovector is a required allocation and is no longer allocated on
318 the stack, by design. The correct fix is an apr userdata allocation on
319 the appropriate pool, which would be thread-safe, but the actual API of
320 ap_regexec[_len]() offers us no pool. We cannot associate that pool with
321 the ap_regex_t, because a single regex may be used by many threads in
322 parallel and is not thread-safe beyond initialization.
323 So the only fix allowing us to use PCRE 10 in httpd 2.4 would be to write
324 this as a thread safe storage buffer for the majority of cases (<10 $args)
325 and we don't have a portable tls mechanism to do so.
328 PATCHES/ISSUES THAT ARE STALLED
330 * core: Add ap_errorlog_provider to make ErrorLog logging modular. This
331 backport keeps syslog logging as part of httpd core and only adds
332 API to allow other modules to be used for error logging.
333 trunk patch: http://svn.apache.org/r1525597
334 http://svn.apache.org/r1525664
335 http://svn.apache.org/r1525845
336 http://svn.apache.org/r1527003
337 http://svn.apache.org/r1527005
338 http://svn.apache.org/r1532344
339 http://svn.apache.org/r1539988
340 http://svn.apache.org/r1541029
341 http://svn.apache.org/r1543979
342 http://svn.apache.org/r1544156
343 http://svn.apache.org/r1626978
344 2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-errorlog_provider.patch
346 +1: covener w/ doc or code to fix syntax (providername:providerarg not supported like syslog or socacheproviders,
347 needs 2 args which is not valid in ErrorLog manual)
348 trawick: nit: fix "writing" in "/* NULL if we are writing to syslog */"
349 (sorry, haven't finished reviewing completely)
350 jim: What is the status of this??
352 * mod_proxy: Add ap_proxy_define_match_worker() and use it for ProxyPassMatch
353 and ProxyMatch section to distinguish between normal workers and workers
354 with regex substitutions in the name. Implement handling of such workers
355 in ap_proxy_get_worker(). Fixes the bug when regex workers were not
356 matched and used for request. PR 43513.
357 trunk patch: http://svn.apache.org/r1609680
358 http://svn.apache.org/r1609688
359 http://svn.apache.org/r1641381
360 ylavic: Merge patch provided (reusing new->real to avoid double de_socketfy() call).
361 Also added missing r1609688 to the patchset.
362 2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-ap_proxy_define_match_worker.patch
364 -0: covener tried to review this one in Austin with Jeff. Does the added match function
365 really cover a very narrow set of parameters with the way it skips over backreferences?
366 Also, why a new API vs. just setting the field inline?
368 * mod_systemd: New module, for integration with systemd on Linux.
369 trunk patch: http://svn.apache.org/r1393976
370 http://svn.apache.org/r1393997
371 http://svn.apache.org/r1484554
372 http://svn.apache.org/r1528032
373 http://svn.apache.org/r1528034
374 http://svn.apache.org/r1614821
375 http://svn.apache.org/r1618579
376 http://svn.apache.org/r1618588
377 2.4.x patch: http://people.apache.org/~jkaluza/patches/mod_systemd/httpd-2.4.x-mod_systemd.patch
379 sf comments: The IdleShutdown logic seems broken. Consider a single
380 active connection that is stalled for 10 seconds. That
381 connection will be broken after GracefulShutdownTimeout.
382 A better logic would be to check if there is any open
383 connection that is not in keep-alive state.
385 * core: Add support for systemd socket activation.
386 trunk patch: http://svn.apache.org/r1511033
387 http://svn.apache.org/r1608686
388 http://svn.apache.org/r1608694
389 http://svn.apache.org/r1608703
390 http://svn.apache.org/r1608721
391 http://svn.apache.org/r1608744
392 2.4.x patch: http://people.apache.org/~jkaluza/patches/mod_systemd/httpd-2.4.x-socket-activation.patch
395 * mod_proxy: Ensure network errors detected by the proxy are returned as
396 504 Gateway Timeout as opposed to 502 Bad Gateway
397 trunk patch: https://svn.apache.org/viewvc?view=revision&revision=1480058
398 2.4.x patch: trunk patch works modulo CHANGES
400 -1: rpluem: This change is still disputed. See
401 http://mail-archives.apache.org/mod_mbox/httpd-dev/201305.mbox/%3C1B16B9E3-87BA-4EEF-939C-7C7313B54714%40gbiv.com%3E
403 * cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will be
404 compiled by the build compiler instead of the host compiler.
405 Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
406 Trunk patches: http://svn.apache.org/viewvc?view=revision&revision=1327907
407 http://svn.apache.org/viewvc?view=revision&revision=1328390
408 http://svn.apache.org/viewvc?view=revision&revision=1328714
409 2.4 patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-cross_compile.diff
410 fuankg: on hold until we agree for a better and more simple solution ...
412 * Makefile.win: Added copying of .vbs / .wsf CGIs to Windows install target.
413 Moved fixing of shebang to separate target so that it is
414 no longer executed by default and all CGIs remain inactive.
415 trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1387984
416 http://svn.apache.org/viewvc?view=revision&revision=1421203
417 http://svn.apache.org/viewvc?view=revision&revision=1421591
418 2.4.x patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-Makefile.win.diff
421 This commit is essentially deciding that an httpd install on
422 Windows now has printenv/testcgi written in 2 more languages.
423 To the extent that the usefulness is that it shows how to make scripts
424 of these types executable by httpd, I believe that the documentation
425 is the proper place to solve that. To the extent that the usefullness
426 is to show how to implement a CGI in these particular languages, I believe
427 that the httpd distribution and documentation in general is not the
428 place for that. Historically these types of scripts have caused problems
429 for downstream vendorsas well as newbies (and sometimes the intersection
430 of those two groups) who don't understand that these are information leaks
431 once they are enabled, and the subtlety of the way they are disabled ("Apache
432 messed up the first line; let me fix that") contributes to that.
433 fuankg notes: I've just added a big warning to all CGI scripts which should now
434 make absolutely clear that these CGIs are for testing purpose only - so those
435 who enable those scripts with inserting the right shebang should be 100% aware
436 of any risks (this should cover your last point).
437 jim: trawick, does the above address your concerns?
438 trawick: to some extent (somebody reading the script gets an idea)
439 Why isn't the configuration requirement documented instead
440 of described indirectly in a sample?
441 Why are these new samples added to the install without three
442 votes? (I didn't veto it; put your name next to the two
443 existing ones and I'll be satisfied that enough people
444 considered this addition as an appropriate solution for a
445 real httpd usability problem.)
446 wrowe: I'd agree with trawick, and suggest that these scripts can begin
447 their life somewhere in the manual/ tree. This really seems like
448 the place where /usr/share/httpd/examples/ would be useful, but
449 there isn't an ordinary directory for that. Since we want none
450 of the scripts to function 'out of the box', what about a new
451 cgi-examples/ dir alongside cgi-bin/? Otherwise manual/cgi/examples
454 * core: block Define and Undefine in vhost and directory context. Because
455 it is EXEC_ON_READ, it "breaks out" of these contexts anyway.
456 trunk patch: http://svn.apache.org/r1656063
457 http://svn.apache.org/r1656122
458 2.4.x patch: http://people.apache.org/~covener/patches/2.4.x-define-limits.diff
459 +1: covener (I need to review the docs manually in this area)
460 -1: wrowe (blocking will break "working" .conf files on a subversion update
461 meant to pick up security fixes. "Alerting" I would agree to.)