Commit ce457c19 authored by Stefan Eissing's avatar Stefan Eissing
Browse files

merged current 2.4.x and ap_mmn.h update by minfrin

parents 42377254 4e02a994
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -4,6 +4,25 @@ Changes with Apache 2.4.17
  *) mod_h2: added donated http/2 implementation to build system. Similar
     configuration options to mod_ssl. [Stefan Eissing]

  *) mod_cache: r->err_headers_out is not merged into
     r->headers when mod_cache is enabled and the response
     is cached for the first time. [Edward Lu]

  *) mod_slotmem_shm: Fix slots/SHM files names on restart for systems that
     can't create new (clear) slots while previous children gracefully stopping
     still use the old ones (e.g. Windows, OS2). mod_proxy_balancer failed to
     restart whenever the number of configured balancers/members changed during
     restart.  PR 58024.  [Yann Ylavic]

  *) core/util_script: make REDIRECT_URL a full URL.  PR 57785. [Nick Kew]

  *) MPMs: Support SO_REUSEPORT to create multiple duplicated listener
     records for scalability. [Yingqi Lu <yingqi.lu@intel.com>,
     Jeff Trawick, Jim Jagielski, Yann Ylavic]

  *) mod_proxy: Fix a race condition that caused a failed worker to be retried
     before the retry period is over. [Ruediger Pluem]

  *) mod_autoindex: Allow autoindexes when neither mod_dir nor mod_mime are
     loaded. [Eric Covener]

+100 −89
Original line number Diff line number Diff line
@@ -110,25 +110,10 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]

 

PATCHES PROPOSED TO BACKPORT FROM TRUNK:
  [ New proposals should be added at the end of the list ]

   * mod_proxy: Add ap_proxy_define_match_worker() and use it for ProxyPassMatch
     and ProxyMatch section to distinguish between normal workers and workers
     with regex substitutions in the name. Implement handling of such workers
     in ap_proxy_get_worker(). Fixes the bug when regex workers were not
     matched and used for request. PR 43513.
     trunk patch: http://svn.apache.org/r1609680
                  http://svn.apache.org/r1609688
                  http://svn.apache.org/r1641381
     ylavic: Merge patch provided (reusing new->real to avoid double de_socketfy() call).
             Also added missing r1609688 to the patchset.
     2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-ap_proxy_define_match_worker.patch
     +1: ylavic
     -0: covener tried to review this one in Austin with Jeff.  Does the added match function 
         really cover a very narrow set of parameters with the way it skips over backreferences?
         Also, why a new API vs. just setting the field inline?

   * core: Add ap_errorlog_provider to make ErrorLog logging modular. This
           backport keeps syslog logging as part of httpd core and only adds
           API to allow other modules to be used for error logging.
@@ -149,6 +134,7 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
                 needs 2 args which is not valid in ErrorLog manual)
     trawick: nit: fix "writing" in "/* NULL if we are writting to syslog */"
              (sorry, haven't finished reviewing completely)
     jim: What is the status of this??

   * mod_journald: Add new module mod_journald to log error logs into journald.
                   This patch needs changes done in mod_systemd patch (already
@@ -156,29 +142,10 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
     trunk patch: http://svn.apache.org/r1610339
                  http://svn.apache.org/r1621806
     2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-mod_journald.patch
     +1: jkaluza

   * MPMs: Support SO_REUSEPORT to create multiple duplicated listener
           records for scalability (full log in 2.4.x patch).
     trunk patch: http://svn.apache.org/r1599531
                  http://svn.apache.org/r1599593
                  http://svn.apache.org/r1599601
                  http://svn.apache.org/r1599603
                  http://svn.apache.org/r1601558
                  http://svn.apache.org/r1629909
                  http://svn.apache.org/r1629918
                  http://svn.apache.org/r1629990
                  http://svn.apache.org/r1635521
                  http://svn.apache.org/r1635859
                  http://svn.apache.org/r1640145
                  http://svn.apache.org/r1640161
                  http://svn.apache.org/r1640184
                  http://svn.apache.org/r1640763
                  http://svn.apache.org/r1643179
                  http://svn.apache.org/r1656368
                  http://svn.apache.org/r1679714
     2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-ap_listeners_buckets-v3.patch
     +1: ylavic, jim
     +1: jkaluza, jim
     minfrin: Not understanding "This patch needs changes done in
              mod_systemd patch", am I right in understanding this patch is
              already committed?

  *) http: Don't remove the Content-Length of zero from a HEAD response if
     it comes from an origin server, module or script. Allow the previous
@@ -188,10 +155,11 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
     trunk patch: http://svn.apache.org/r1554303
                  http://svn.apache.org/r1678215
     2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-preserve_head_cl_zero.patch
     +1: ylavic
     +1: ylavic, jim
     ylavic: r1554303 issued a major MMN bump, but since the ABI change is two
             ints added at the end of core_server_config, the proposed merge
             does a minor bump only.
     minfrin: Two new directives need to be documented.

  *) mod_substitute: Configure patterns merge order. PR 57641
     trunk patch: http://svn.apache.org/r1684900
@@ -208,32 +176,6 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
     ylavic: updated to v5 including r1697013 and r1697015, the diff to v4 is:
             http://people.apache.org/~ylavic/httpd-2.4.x-SubstituteInheritBefore-v4_vs_v5.diff

  *) mod_proxy: Fix a race condition that caused a failed worker to be retried
     before the retry period is over
      Trunk version of patch:
         http://svn.apache.org/r1664709
         http://svn.apache.org/r1697323
      Backport version for 2.4.x of patch:
         Trunk version of patch works modulo CHANGES
      +1: rpluem, ylavic
      niq: 1. the if(worker->s->retries) {} and comment at line 2917
              don't seem to make any sense.
      rpluem: This is just taken over from existing code. It is just indented
              differently hence part of the path I think it should be marked
              as TODO section. But this should be subject to another
              patch.
           2. Re: error handline line 2930 - can PROXY_WORKER_IS_USABLE
              not be tested BEFORE opening connection?
      rpluem: We could, but we can catch more race cases with the current code
              as it also catches the case where a connection establishment
              took long and the worker went into error meanwhile.
 
  *) util_script: Make REDIRECT_URL a complete URL (where set).
     PR 57785
     trunk: http://svn.apache.org/viewvc?view=revision&revision=1677702
     2.4.x: trunk patch applies.
     +1: niq, jim

  *) core/mod_ssl: add Protocols/ProtocolsHonorOrder directives and new 
     protocols hooks to control Upgrade: and ALPN protocol switching.
     HTTP_MISDIRECTED_REQUEST addition and handling in mod_ssl
@@ -261,6 +203,8 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
     v3: added changes to ap_array_index and ap_array_contains
     2.4.x patch: https://raw.githubusercontent.com/icing/mod_h2/master/sandbox/httpd/patches/core-protocols-v4.patch
     +1: icing, jim
     minfrin: +1 with proposed MMN bump at https://people.apache.org/~minfrin/core-protocols-mmn.patch
       +1: jim

  *) mod_h2: add HTTP/2 support to httpd, depends on core/mod_ssl changes above
     2.4.x branch for this and core/mod_ssl: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.17-protocols-http2
@@ -268,21 +212,6 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
         svn diff ^/httpd/httpd/branches/2.4.x ^/httpd/httpd/branches/2.4.17-protocols-http2
     +1: icing, jim

  *) mod_slotmem_shm: Fix slots/SHM files names on restart for systems that
     can't create new (clear) slots while previous children gracefully stopping
     still use the old ones (e.g. Windows, OS2). PR 58024.
     trunk patch: http://svn.apache.org/r1702450
                  http://svn.apache.org/r1702473
                  http://svn.apache.org/r1702501
                  http://svn.apache.org/r1702955
                  http://svn.apache.org/r1703149
                  http://svn.apache.org/r1703157
                  http://svn.apache.org/r1703169
                  http://svn.apache.org/r1703200
     2.4.x patch: trunk works (module CHANGES)
     merge patch: http://people.apache.org/~ylavic/httpd-2.4.x-mod_slotmem_shm-generation.patch
     +1: ylavic, jim

  *) mod_proxy: don't recyle backend announced "Connection: close" connections
     to avoid reusing it should the close be effective after some new request
     is ready to be sent.
@@ -297,15 +226,81 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
  *) mod_proxy: Fix ProxySourceAddress binding failure with AH00938.  PR 56687.
     trunk patch: http://svn.apache.org/r1703902
     2.4.x patch: trunk works (module CHANGES)
     +1: ylavic
     +1: ylavic, minfrin

   * mod_cache: r->err_headers_out is not merged into
     r->headers when mod_cache is enabled and the response
     is cached for the first time.
     trunk patch: http://svn.apache.org/r1704392
                  http://svn.apache.org/r1704395
   *) mod_logio: Fix %^FB on initial request on SSL connection by not counting
      handshake writes as first byte. Also fix processing per Yann's observations
      about potential problems with e.g. write completion.
      trunk patch: http://svn.apache.org/r1705099
                   http://svn.apache.org/r1705134
      2.4.x patch: trunk works
      +1: covener, minfrin

   *) mod_xml2enc: fix spurious (and harmless) test
      trunk patch: http://svn.apache.org/r1704099
      2.4.x patch: trunk works
      +1: jailletc36, minfrin

  *) mod_ssl: namespacing changes from May 2015
     trunk patches: https://svn.apache.org/r1674538
                    https://svn.apache.org/r1677143
                    https://svn.apache.org/r1677144
                    https://svn.apache.org/r1677145
                    https://svn.apache.org/r1677146
                    https://svn.apache.org/r1677149
                    https://svn.apache.org/r1677151
                    https://svn.apache.org/r1677153
                    https://svn.apache.org/r1677154
                    https://svn.apache.org/r1677155
                    https://svn.apache.org/r1677156
                    https://svn.apache.org/r1677159
                    https://svn.apache.org/r1677339
                    https://svn.apache.org/r1677830
                    https://svn.apache.org/r1677832
                    https://svn.apache.org/r1677834
                    https://svn.apache.org/r1677835
     2.4.x patch: https://people.apache.org/~kbrand/mod_ssl-2.4.x-namespacing.diff
     +1: kbrand

  *) mod_ssl: add support for msUPN and dnsSRV otherName form entries
     in the subjectAltName extension. PR 58020.
     trunk patch: https://svn.apache.org/r1693792
     2.4.x patch: trunk works (modulo CHANGES),
                  but depends on the namespacing backport (see above)
     +1: kbrand

  *) mod_ssl: support SUITEB* cipher strings with OpenSSL 1.0.2 and later.
     PR 58213.
     trunk patch: https://svn.apache.org/r1702643
     2.4.x patch: trunk works (modulo CHANGES)
     +1: kbrand

  *) mod_ssl: Support compilation against libssl built with OPENSSL_NO_SSL3,
     and change the compiled-in default for SSL[Proxy]Protocol to "all -SSLv3".
     PR 58349, PR 57120.
     trunk patch: https://svn.apache.org/r1703952
     2.4.x patch: https://people.apache.org/~kbrand/mod_ssl-2.4.x-disable-sslv3.diff
     +1: kbrand
     ylavic: Should we really change the (implicit) default in 2.4.x at
             this stage (and potentially break existing configuratios w/o
             SSLProtocol which used to work with SSLv3 only capable clients)?

  *) mod_alias: Introduce expression parser support for Alias, ScriptAlias
     and Redirect. Limit Redirect expressions to directory (Location) context
     and redirect statuses (implicit or explicit).
     trunk patch: http://svn.apache.org/r1653941
                  http://svn.apache.org/r1653978
                  http://svn.apache.org/r1656225
                  http://svn.apache.org/r1686853
                  http://svn.apache.org/r1686856
     2.4.x patch: https://people.apache.org/~minfrin/httpd-mod_alias-expr2.patch
     +1: minfrin

   * MPMs: Follow up to r1705492 (SO_REUSEPORT). Add missing (and harmless)
           backport hunk (for consistency with trunk and 2.4.x's worker/event).
     trunk patch: http://svn.apache.org/r1629916
     2.4.x patch: trunk works
     +1: elu
     +1: ylavic


PATCHES/ISSUES THAT ARE BEING WORKED
@@ -339,6 +334,22 @@ PATCHES/ISSUES THAT ARE BEING WORKED

PATCHES/ISSUES THAT ARE STALLED

   * mod_proxy: Add ap_proxy_define_match_worker() and use it for ProxyPassMatch
     and ProxyMatch section to distinguish between normal workers and workers
     with regex substitutions in the name. Implement handling of such workers
     in ap_proxy_get_worker(). Fixes the bug when regex workers were not
     matched and used for request. PR 43513.
     trunk patch: http://svn.apache.org/r1609680
                  http://svn.apache.org/r1609688
                  http://svn.apache.org/r1641381
     ylavic: Merge patch provided (reusing new->real to avoid double de_socketfy() call).
             Also added missing r1609688 to the patchset.
     2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-ap_proxy_define_match_worker.patch
     +1: ylavic
     -0: covener tried to review this one in Austin with Jeff.  Does the added match function 
         really cover a very narrow set of parameters with the way it skips over backreferences?
         Also, why a new API vs. just setting the field inline?

   * mod_systemd: New module, for integration with systemd on Linux.
     trunk patch: http://svn.apache.org/r1393976
                  http://svn.apache.org/r1393997
+1 −0
Original line number Diff line number Diff line
@@ -343,6 +343,7 @@ maxrequestworkers mod/mpm_common.html#maxrequestworkers
maxspareservers	mod/prefork.html#maxspareservers
maxsparethreads	mod/mpm_common.html#maxsparethreads
maxthreads	mod/mpm_netware.html#maxthreads
memcacheconnttl	mod/mod_socache_memcache.html#memcacheconnttl
mergetrailers	mod/core.html#mergetrailers
metadir	mod/mod_cern_meta.html#metadir
metafiles	mod/mod_cern_meta.html#metafiles
+1 −0
Original line number Diff line number Diff line
@@ -347,6 +347,7 @@
<li><a href="core.html#limitxmlrequestbody">LimitXMLRequestBody</a></li>
<li><a href="mpm_common.html#listen">Listen</a></li>
<li><a href="mpm_common.html#listenbacklog">ListenBackLog</a></li>
<li><a href="mpm_common.html#listencoresbucketsratio">ListenCoresBucketsRatio</a></li>
<li><a href="mod_so.html#loadfile">LoadFile</a></li>
<li><a href="mod_so.html#loadmodule">LoadModule</a></li>
<li><a href="core.html#location">&lt;Location&gt;</a></li>
+36 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ more than one multi-processing module (MPM)</td></tr>
<li><img alt="" src="../images/down.gif" /> <a href="#gracefulshutdowntimeout">GracefulShutdownTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#listen">Listen</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#listenbacklog">ListenBackLog</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxconnectionsperchild">MaxConnectionsPerChild</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxmemfree">MaxMemFree</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxrequestworkers">MaxRequestWorkers</a></li>
@@ -252,6 +253,41 @@ including other causes.</a></li>
    but use a number based on (but normally larger than) what is
    set.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ListenCoresBucketsRatio" id="ListenCoresBucketsRatio">ListenCoresBucketsRatio</a> <a name="listencoresbucketsratio" id="listencoresbucketsratio">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ratio between the number of CPU cores (online) and the number of
listeners' buckets</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ListenCoresBucketsRatio <var>ratio</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ListenCoresBucketsRatio 0 (disabled)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.4.13, with a kernel supporting
the socket option <code>SO_REUSEPORT</code> and distributing new connections
evenly accross listening processes' (or threads') sockets using it (eg. Linux
3.9 and later, but not the current implementations of <code>SO_REUSEPORT</code>
in *BSDs.</td></tr>
</table>
    <p>A <var>ratio</var> between the number of (online) CPU cores and the
    number of listeners' buckets can be used to make Apache HTTP Server create
    <code>num_cpu_cores / ratio</code> listening buckets, each containing its
    own <code class="directive">Listen</code>-ing socket(s) on the same port(s), and
    then make each child handle a single bucket (with round-robin distribution
    of the buckets at children creation time).</p>

    <p><code class="directive">ListenCoresBucketsRatio</code> can improve the
    scalability when accepting new connections is/becomes the bottleneck.
    On systems with a large number of CPU cores, enabling this feature has
    been tested to show significant performances improvement and shorter
    responses time.</p>

    <p>There must be at least twice the number of CPU cores than the
    configured <var>ratio</var> for this to be active. The recommended
    <var>ratio</var> is <code>8</code>, hence at least <code>16</code>
    cores should be available at runtime when this value is used.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="MaxConnectionsPerChild" id="MaxConnectionsPerChild">MaxConnectionsPerChild</a> <a name="maxconnectionsperchild" id="maxconnectionsperchild">Directive</a></h2>
Loading