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 *) confirm ab + https w/ openssl 1.1.0 on unix is OK.
119 Gregg says it's broken on Windows.
120 Document it somewhere either way.
121 jchampion: hangs on my Ubuntu box too. Looks like a CRYPTO_malloc()
122 infinite loop during library initialization?
124 *) mod_brotli: Fix two build issues (failing Unix build when mod_brotli
125 is not being built and invalid library filenames in CMakeFiles).
126 trunk patch: https://svn.apache.org/r1761824
127 https://svn.apache.org/r1771789
128 https://svn.apache.org/r1771827
129 https://svn.apache.org/r1779111
130 2.4.x patch: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x-r1761824-group
131 Note: These changesets were missing in the original mod_brotli backport
132 proposal merged in r1791231. They fix the described problems and avoid
133 having unnecessarily different modules/filters/config.m4 file contents
134 in trunk and in the 2.4.x branch. See the related discussion in
135 https://lists.apache.org/thread.html/a83741642c3d20f383efdf2c427829b2f37cb81e98c0a1756a2c19ce@%3Cdev.httpd.apache.org%3E
139 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
140 [ start all new proposals below, under PATCHES PROPOSED. ]
142 *) mod_proxy_hcheck: Honor checks in Vhosts w/o hanging
143 trunk patch: http://svn.apache.org/r1784203
144 http://svn.apache.org/r1784205
145 http://svn.apache.org/r1784227
146 http://svn.apache.org/r1784228
147 http://svn.apache.org/r1784275
148 http://svn.apache.org/r1785871
149 http://svn.apache.org/r1786009
150 http://svn.apache.org/r1789387
151 2.4.x patch: trunk works *after r1779573 above* (modulo CHANGES)
152 ie: http://home.apache.org/~ylavic/patches/httpd2.4-hcheck-after-r1779573.patch
153 FULL hcheck patch: http://home.apache.org/~jim/patches/httpd2.4-hcheck.patch
154 http://svn.apache.org/r1789387
155 (includes all hcheck related patches, including showstopper)
156 +1: jim, ylavic, icing
158 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
159 [ New proposals should be added at the end of the list ]
161 *) mod_proxy, mod_ssl: Handle SSLProxy* directives in <Proxy> sections,
162 allowing per backend TLS configuration.
163 trunk patch: http://svn.apache.org/r1740928
164 http://svn.apache.org/r1740960
165 http://svn.apache.org/r1740967
166 http://svn.apache.org/r1740987
167 http://svn.apache.org/r1740998
168 http://svn.apache.org/r1742697
169 http://svn.apache.org/r1756976
170 http://svn.apache.org/r1781313
171 2.4.x patch: http://home.apache.org/~ylavic/patches/httpd-2.4.x-r1740928_and_co-v3.patch
174 *) mod_remoteip: Add PROXY protocol support
175 trunk patch: http://svn.apache.org/r1776575
176 http://svn.apache.org/r1776578 (doc fix)
177 http://svn.apache.org/r1776627 (shortened name + doc fix)
178 http://svn.apache.org/r1776674 (attribution moved to CHANGES)
179 http://svn.apache.org/r1776740 (attribution updated in mod_remotip.c)
180 http://svn.apache.org/r1778268 (fix compiler warning)
181 http://svn.apache.org/r1780725 (set buckets aside)
182 http://svn.apache.org/r1781030 (fix strict GCC warning)
183 http://svn.apache.org/r1781031 (reference the filter by handle)
184 http://svn.apache.org/r1781701 (rework optional processing case)
185 http://svn.apache.org/r1788674 (final edge cases/ignore slave conns)
186 http://svn.apache.org/r1789800 (remove optional processing)
187 http://svn.apache.org/r1790169 (rename "exception" directive)
188 http://svn.apache.org/r1790457 (Update directive name in err message)
189 2.4 convenience patch (includes CHANGES):
190 http://people.apache.org/~druggeri/patches/RemoteIPProxyProtocol.2.4.x.patch
193 * mod_journald: Add new module mod_journald to log error logs into journald.
194 trunk patch: http://svn.apache.org/r1610339
195 http://svn.apache.org/r1621806
196 2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-mod_journald.patch
198 jchampion: Looks like the headers require GCC extensions to compile, so
199 mod_journald can't be configured in maintainer mode (-std=c89).
200 Can anyone else reproduce, or is it just my distro?
202 * core: don't run configtest in -V mode when MPM DSOs are in use, and try to
203 print compile settings even if reading the configuration fails. Fixes
205 trunk patch: https://svn.apache.org/r1791975
206 2.4.x patch: trunk works
209 *) core: Disallow multiple Listen on the same IP:port when listener buckets
210 are configured (ListenCoresBucketsRatio > 0), consistently with the single
211 bucket case (default), thus avoiding the leak of the corresponding socket
212 descriptors on graceful restart.
213 trunk patch: http://svn.apache.org/r1789220
214 trunk patch: http://svn.apache.org/r1792675
215 2.4.x patch: trunk works (modulo CHANGES)
219 PATCHES/ISSUES THAT ARE BEING WORKED
220 [ New entried should be added at the START of the list ]
222 *) mod_ssl: Return 502 instead of 500 when SSL peer check or
223 proxy_post_handshake hook fails.
224 Trunk patch: r1645529 (works)
225 2.4.x patch which adds CHANGES: https://emptyhammock.com/media/downloads/r1645529-to-2.4.x.txt
227 ylavic: there may be missing bits, see thread for commit r1736510.
229 *) core: Drop an invalid Last-Modified header value coming
230 from a (F)CGI script instead of replacing it with Unix epoch.
231 Warn the users about Last-Modified header value replacements
232 and violations of the RFC.
233 trunk patch: http://svn.apache.org/r1748379
234 http://svn.apache.org/r1750747
235 http://svn.apache.org/r1750749
236 http://svn.apache.org/r1750953
237 http://svn.apache.org/r1751138
238 http://svn.apache.org/r1751139
239 http://svn.apache.org/r1751147
240 http://svn.apache.org/r1757818
241 2.4.x: trunk patches work, final view:
242 http://home.apache.org/~elukey/httpd-2.4.x-core-last_modified_tz_logging.patch
243 The problem has been discussed in dev@ extensively but we did not reach a common
244 agreement about how to proceed in the long term. While we wait, I would really like
245 to introduce useful logs for the users (the starting point of this change was a users@
246 email thread). If this is not the right way to go I will move the patch to other
247 sections of STATUS (stalled or being worked).
248 The code has been tested with a simple PHP script returning different Last-Modified
249 headers (GMT now, GMT now Europe/Paris, GMT tomorrow, GMT yesterday, PST now).
252 *) http: Don't remove the Content-Length of zero from a HEAD response if
253 it comes from an origin server, module or script. Allow the previous
254 behaviour (for legacy/buggy modules only, not origin) by also backporting
255 the HttpContentLengthHeadZero directive (and also HttpExpectStrict which
256 comes for free with the same commit).
257 trunk patch: http://svn.apache.org/r1554303
258 http://svn.apache.org/r1678215
259 2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-preserve_head_cl_zero.patch
261 ylavic: r1554303 issued a major MMN bump, but since the ABI change is two
262 ints added at the end of core_server_config, the proposed merge
263 does a minor bump only.
264 minfrin: Two new directives need to be documented.
266 * mod_proxy_http: Don't establish or reuse a backend connection before pre-
267 fetching the request body, so to minimize the delay between it is supposed
268 to be alive and the first bytes sent: this is a best effort to prevent the
269 backend from closing because of idle or keepalive timeout in the meantime.
270 Also, handle a new "proxy-flushall" environment variable which allows to
271 flush any forwarded body data immediately. PR 56541+37920.
272 trunk patch: http://svn.apache.org/r1656259
273 http://svn.apache.org/r1656359 (CHANGES entry)
274 2.4.x patch: trunk works (modulo CHANGES, docs/log-message-tags)
276 -0: jim: This seems to be a hit to normal performance, to handle an
277 error and/or non-normal condition. The pre-fetch is
278 expensive, and is always done, even before we know that
279 the backend is available to rec' it. I understand the
280 error described, but is the fix actually worth it (plus
281 it seems to allow for a DDoS vector).
282 ylavic: It seems to me that the problem is real since we reuse the
283 connection before prefetching 16K (either controlled by the
284 client, or by an input filter), we currently always prefetch
285 these bytes already. Regarding performance I don't see any
286 difference (more cycles) compared with the current code.
287 However I think I failed to rebuild the header_brigade when
288 the proxy loop is retried (ping), so I need to rework this.
289 Do you think we'd better remove the prefetch, or maybe just
290 make it nonblocking (by default)?
291 jim: Non-blocking seems the best way to handle...
293 * mod_dav: Allow other modules to become providers and add ACLs
294 to the DAV response. Requires a release of apr-util v1.6.
295 trunk patch: http://svn.apache.org/r1748322
296 2.4.x: trunk works modulo CHANGES/MMN
298 rpluem asks: Will this compile with apr-util < v1.6 and keep
299 mod_dav working (without the new features of the patch of course)?
300 I doubt that we will require apr-util 1.6 for the lifetime of 2.4.x
301 (see the discussion around ap_cstr_casecmp[n] an apr 1.6)
302 minfrin: Yes, as you can see in the patch everything applies only
303 if APR_XML_X2T_PARSED is defined, and the patch was tested with
304 both apr-util v1.6 and apr-util v1.5.
305 -1: jorton, breaks binary backwards compat per dev@ discuss
306 msgid <20160902120654.GA12674@redhat.com>
307 (& also, making the structure change with apr-util version
308 means it breaks binary compat across an apr-util upgrade?)
310 * Support PCRE2 (10.x) in place of PCRE (8.x).
311 Submitted by: wrowe, Petr Pisar [ppisar redhat.com]
313 http://svn.apache.org/r1773454
314 http://svn.apache.org/r1773741
315 http://svn.apache.org/r1773742
316 http://svn.apache.org/r1773839
317 http://svn.apache.org/r1773870
318 http://svn.apache.org/r1773882
319 wrowe notes that the current code is too inefficient, owing to the fact
320 that the ovector is a required allocation and is no longer allocated on
321 the stack, by design. The correct fix is an apr userdata allocation on
322 the appropriate pool, which would be thread-safe, but the actual API of
323 ap_regexec[_len]() offers us no pool. We cannot associate that pool with
324 the ap_regex_t, because a single regex may be used by many threads in
325 parallel and is not thread-safe beyond initialization.
326 So the only fix allowing us to use PCRE 10 in httpd 2.4 would be to write
327 this as a thread safe storage buffer for the majority of cases (<10 $args)
328 and we don't have a portable tls mechanism to do so.
331 PATCHES/ISSUES THAT ARE STALLED
333 * core: Add ap_errorlog_provider to make ErrorLog logging modular. This
334 backport keeps syslog logging as part of httpd core and only adds
335 API to allow other modules to be used for error logging.
336 trunk patch: http://svn.apache.org/r1525597
337 http://svn.apache.org/r1525664
338 http://svn.apache.org/r1525845
339 http://svn.apache.org/r1527003
340 http://svn.apache.org/r1527005
341 http://svn.apache.org/r1532344
342 http://svn.apache.org/r1539988
343 http://svn.apache.org/r1541029
344 http://svn.apache.org/r1543979
345 http://svn.apache.org/r1544156
346 http://svn.apache.org/r1626978
347 2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-errorlog_provider.patch
349 +1: covener w/ doc or code to fix syntax (providername:providerarg not supported like syslog or socacheproviders,
350 needs 2 args which is not valid in ErrorLog manual)
351 trawick: nit: fix "writing" in "/* NULL if we are writing to syslog */"
352 (sorry, haven't finished reviewing completely)
353 jim: What is the status of this??
355 * mod_proxy: Add ap_proxy_define_match_worker() and use it for ProxyPassMatch
356 and ProxyMatch section to distinguish between normal workers and workers
357 with regex substitutions in the name. Implement handling of such workers
358 in ap_proxy_get_worker(). Fixes the bug when regex workers were not
359 matched and used for request. PR 43513.
360 trunk patch: http://svn.apache.org/r1609680
361 http://svn.apache.org/r1609688
362 http://svn.apache.org/r1641381
363 ylavic: Merge patch provided (reusing new->real to avoid double de_socketfy() call).
364 Also added missing r1609688 to the patchset.
365 2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-ap_proxy_define_match_worker.patch
367 -0: covener tried to review this one in Austin with Jeff. Does the added match function
368 really cover a very narrow set of parameters with the way it skips over backreferences?
369 Also, why a new API vs. just setting the field inline?
371 * mod_systemd: New module, for integration with systemd on Linux.
372 trunk patch: http://svn.apache.org/r1393976
373 http://svn.apache.org/r1393997
374 http://svn.apache.org/r1484554
375 http://svn.apache.org/r1528032
376 http://svn.apache.org/r1528034
377 http://svn.apache.org/r1614821
378 http://svn.apache.org/r1618579
379 http://svn.apache.org/r1618588
380 2.4.x patch: http://people.apache.org/~jkaluza/patches/mod_systemd/httpd-2.4.x-mod_systemd.patch
382 sf comments: The IdleShutdown logic seems broken. Consider a single
383 active connection that is stalled for 10 seconds. That
384 connection will be broken after GracefulShutdownTimeout.
385 A better logic would be to check if there is any open
386 connection that is not in keep-alive state.
388 * core: Add support for systemd socket activation.
389 trunk patch: http://svn.apache.org/r1511033
390 http://svn.apache.org/r1608686
391 http://svn.apache.org/r1608694
392 http://svn.apache.org/r1608703
393 http://svn.apache.org/r1608721
394 http://svn.apache.org/r1608744
395 2.4.x patch: http://people.apache.org/~jkaluza/patches/mod_systemd/httpd-2.4.x-socket-activation.patch
398 * mod_proxy: Ensure network errors detected by the proxy are returned as
399 504 Gateway Timeout as opposed to 502 Bad Gateway
400 trunk patch: https://svn.apache.org/viewvc?view=revision&revision=1480058
401 2.4.x patch: trunk patch works modulo CHANGES
403 -1: rpluem: This change is still disputed. See
404 http://mail-archives.apache.org/mod_mbox/httpd-dev/201305.mbox/%3C1B16B9E3-87BA-4EEF-939C-7C7313B54714%40gbiv.com%3E
406 * cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will be
407 compiled by the build compiler instead of the host compiler.
408 Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
409 Trunk patches: http://svn.apache.org/viewvc?view=revision&revision=1327907
410 http://svn.apache.org/viewvc?view=revision&revision=1328390
411 http://svn.apache.org/viewvc?view=revision&revision=1328714
412 2.4 patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-cross_compile.diff
413 fuankg: on hold until we agree for a better and more simple solution ...
415 * Makefile.win: Added copying of .vbs / .wsf CGIs to Windows install target.
416 Moved fixing of shebang to separate target so that it is
417 no longer executed by default and all CGIs remain inactive.
418 trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1387984
419 http://svn.apache.org/viewvc?view=revision&revision=1421203
420 http://svn.apache.org/viewvc?view=revision&revision=1421591
421 2.4.x patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-Makefile.win.diff
424 This commit is essentially deciding that an httpd install on
425 Windows now has printenv/testcgi written in 2 more languages.
426 To the extent that the usefulness is that it shows how to make scripts
427 of these types executable by httpd, I believe that the documentation
428 is the proper place to solve that. To the extent that the usefullness
429 is to show how to implement a CGI in these particular languages, I believe
430 that the httpd distribution and documentation in general is not the
431 place for that. Historically these types of scripts have caused problems
432 for downstream vendorsas well as newbies (and sometimes the intersection
433 of those two groups) who don't understand that these are information leaks
434 once they are enabled, and the subtlety of the way they are disabled ("Apache
435 messed up the first line; let me fix that") contributes to that.
436 fuankg notes: I've just added a big warning to all CGI scripts which should now
437 make absolutely clear that these CGIs are for testing purpose only - so those
438 who enable those scripts with inserting the right shebang should be 100% aware
439 of any risks (this should cover your last point).
440 jim: trawick, does the above address your concerns?
441 trawick: to some extent (somebody reading the script gets an idea)
442 Why isn't the configuration requirement documented instead
443 of described indirectly in a sample?
444 Why are these new samples added to the install without three
445 votes? (I didn't veto it; put your name next to the two
446 existing ones and I'll be satisfied that enough people
447 considered this addition as an appropriate solution for a
448 real httpd usability problem.)
449 wrowe: I'd agree with trawick, and suggest that these scripts can begin
450 their life somewhere in the manual/ tree. This really seems like
451 the place where /usr/share/httpd/examples/ would be useful, but
452 there isn't an ordinary directory for that. Since we want none
453 of the scripts to function 'out of the box', what about a new
454 cgi-examples/ dir alongside cgi-bin/? Otherwise manual/cgi/examples
457 * core: block Define and Undefine in vhost and directory context. Because
458 it is EXEC_ON_READ, it "breaks out" of these contexts anyway.
459 trunk patch: http://svn.apache.org/r1656063
460 http://svn.apache.org/r1656122
461 2.4.x patch: http://people.apache.org/~covener/patches/2.4.x-define-limits.diff
462 +1: covener (I need to review the docs manually in this area)
463 -1: wrowe (blocking will break "working" .conf files on a subversion update
464 meant to pick up security fixes. "Alerting" I would agree to.)