1. 03 Mar, 2018 2 commits
    • Daniel Ruggeri's avatar
      Post 2.4.31 tag updates · 27990eea
      Daniel Ruggeri authored
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1825777 13f79535-47bb-0310-9956-ffa450edef68
      27990eea
    • Yann Ylavic's avatar
      Merge r1802040, r1807876, r1808014, r1805490, r1823886 from trunk: · 7b22490b
      Yann Ylavic authored
      mod_proxy_fcgi: Add the support for mod_proxy's
                      flushpackets and flushwait params
      
      This change was requested on the development mailing
      list in order to fill another gap between mod_fcgi
      and mod_proxy_fcgi, namely the -flush funtionality.
      
      The more evolved core trunk code would not need this
      feature becuse of the non-blocking writes, but it
      is be needed in 2.4.x.
      
      
      mod_proxy_fcgi: limit the flush buckets inserted when flushpackets=on|auto
      
      This commit is a follow up of r1802040 based on Jacob's
      feedback, namely inserting the FLUSH buckets only when
      really needed and useful, not always.
      
      
      mod_proxy_fcgi: follow up to r1807876.
      Fix mixed declarations and code [-Wdeclaration-after-statement].
      
      Fix a compilation warning introduced by r1802040.
      mod_proxy_fcgi.c:893:19: warning: ‘flushpoll’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      
      This warning is a false positive.
      
      
      mod_proxy_fcgi: prioritize the check for mayflush when using flushpackets
      
      The mayflush variable should be checked before the rest
      to avoid polling when not needed.
      
      Suggested by Yann Ylavic on the dev@ mailing list.
      
      
      Submitted by: elukey, ylavic, jailletc36, elukey
      Reviewed by: elukey, jim, ylavic
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1825765 13f79535-47bb-0310-9956-ffa450edef68
      7b22490b
  2. 20 Feb, 2018 4 commits
    • Yann Ylavic's avatar
      Merge r1823047, r1824454, r1824463, r1824464, r1824497, r1824862, r1824877 from trunk: · f70828d2
      Yann Ylavic authored
      mpm_event: move lingering close "sucker" from the listener to worker(s).
      
      This was the last non-constant time action performed by the listener thread.
      
      It's now handled by the worker thread directly after entering lingering close,
      which should directly address the cases when the socket is already closed
      remotely at that time, hence avoid more scheduling (it may be the common case
      for some scenarios).
      
      And it's only if the above would need blocking (i.e. more data to suck) that
      the socket is added to the pollset for the listener to re-schedule a worker
      later when ready. If no worker is available at that time then the socket is
      forcibly closed (similarly to what's done for keepalive connections in this
      case).
      
      Also, since process_lingering_close() is now called by a worker thread and
      with almost no depth in the call stack, we can grow the size of the "suck"
      buffer from 2K to 32K to potentially call recv() up to sixteen times less.
      
      
      mpm_event: follow up to r1823047.
      
      Update clogged counter on read_request retry too.
      
      
      mpm_event: follow up to r1823047: simplify "clogging" logic (reentrance).
      
      
      mpm_event: follow up to r1823047: complete state validation after processing.
      
      
      mpm_event: follow up to r1823047: CHANGES entry.
      
      
      mpm_event: follow up to r1823047 and r1824464.
      
      MMN bump for CONN_STATE_NUM, plus don't consider CONN_STATE_LINGER_* as valid
      states returned process_connection (never have been).
      
      
      mpm_event: follow up to r1823047 and r1824862.
      
      Revert (broken) functional change from r1824862.
      
      
      Submitted by: ylavic
      Reviewed by: ylavic, minfrin, jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1824879 13f79535-47bb-0310-9956-ffa450edef68
      f70828d2
    • Yann Ylavic's avatar
      Revert r1824868 (and r1824869). · a35bb6eb
      Yann Ylavic authored
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1824874 13f79535-47bb-0310-9956-ffa450edef68
      a35bb6eb
    • Yann Ylavic's avatar
      Merge r1824811 from trunk: · 39ae6cd6
      Yann Ylavic authored
      10 years after r567503 , fix this properly.
      
      The lock is created in post_config, so we can't copy it
      around in a merge_server_config() callback.
      
      
      Submitted by: covener
      Reviewed by: covener, rpluem, jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1824872 13f79535-47bb-0310-9956-ffa450edef68
      39ae6cd6
    • Yann Ylavic's avatar
      Merge r1823047, r1824454, r1824463, r1824464, r1824497, r1824862 from trunk: · 566b629a
      Yann Ylavic authored
      mpm_event: move lingering close "sucker" from the listener to worker(s).
      
      This was the last non-constant time action performed by the listener thread.
      
      It's now handled by the worker thread directly after entering lingering close,
      which should directly address the cases when the socket is already closed
      remotely at that time, hence avoid more scheduling (it may be the common case
      for some scenarios).
      
      And it's only if the above would need blocking (i.e. more data to suck) that
      the socket is added to the pollset for the listener to re-schedule a worker
      later when ready. If no worker is available at that time then the socket is
      forcibly closed (similarly to what's done for keepalive connections in this
      case).
      
      Also, since process_lingering_close() is now called by a worker thread and
      with almost no depth in the call stack, we can grow the size of the "suck"
      buffer from 2K to 32K to potentially call recv() up to sixteen times less.
      
      
      mpm_event: follow up to r1823047.
      
      Update clogged counter on read_request retry too.
      
      
      mpm_event: follow up to r1823047: simplify "clogging" logic (reentrance).
      
      
      mpm_event: follow up to r1823047: complete state validation after processing.
      
      
      mpm_event: follow up to r1823047: CHANGES entry.
      
      
      mpm_event: follow up to r1823047 and r1824464.
      
      MMN bump for CONN_STATE_NUM, plus don't consider CONN_STATE_LINGER_* as valid
      states returned process_connection (never have been).
      
      
      Submitted by: ylavic
      Reviewed by: ylavic, minfrin, jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1824868 13f79535-47bb-0310-9956-ffa450edef68
      566b629a
  3. 19 Feb, 2018 2 commits
  4. 16 Feb, 2018 9 commits
  5. 15 Feb, 2018 1 commit
  6. 14 Feb, 2018 4 commits
  7. 13 Feb, 2018 3 commits
  8. 10 Feb, 2018 1 commit
  9. 09 Feb, 2018 5 commits
  10. 18 Jan, 2018 1 commit
  11. 13 Jan, 2018 3 commits
  12. 10 Jan, 2018 3 commits
    • Yann Ylavic's avatar
      Merge r1818040 from trunk: · 01a4e02e
      Yann Ylavic authored
      PR61891: looping over mostly full LDAP cache
      
        *) mod_ldap: Fix a case where a full LDAP cache would continually fail to
           purge old entries and log AH01323. PR61891.
      
      
      Submitted By: Hendrik Harms <hendrik.harms gmail.com>
      Committed By: covener
      Reviewed By: covener, jim, ylavic
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1820800 13f79535-47bb-0310-9956-ffa450edef68
      01a4e02e
    • Yann Ylavic's avatar
      Merge r1818804, r1818951, r1818958, r1818960, r1819027, r1819214, r1820035 from trunk: · 6e5b7f3d
      Yann Ylavic authored
      mpm_event: close connections not reported as handled by any module.
      
      This avoids losing track of them and leaking scoreboard entries.
      PR 61551.
      
      
      mpm_event: follow up to r1818804.
      
      Address corner case where connection is aborted due to ap_run_pre_connection()
      failure, and update comment about ap_run_process_connection() expected return
      status and state.
      
      
      mpm_event: follow up to r1818804 and r1818951.
      
      Align comment and fix typos.
      
      
      mpm_event: follow up to r1818804.
      
      Allow DONE as a successful ap_run_process_connection() return value, for
      instance h2_conn_run() and h2_task_process_conn() uses it, third-party
      modules may too...
      
      
      mpm_event: follow up to r1818804 and r1818951.
      
      Be more correct in comment about CONN_STATE_WRITE_COMPLETION.
      We currently have/need no state to simply wait for readability on a socket,
      so the previous comment was misleading. Write completion can't be used for
      a simple "wait for read event and come back to process_connection hooks".
      
      
      mpm_event: follow up to r1818804 and r1818960.
      
      Align mod_http2 with expected returned state from process_connection hooks in
      async MPMs.
      When the master connection is handled, enter CONN_STATE_LINGER in any case.
      
      
      Add missing APLOGNO
      
      
      Submitted by: ylavic, jailletc36
      Reviewed by: ylavic, icing, covener
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1820796 13f79535-47bb-0310-9956-ffa450edef68
      6e5b7f3d
    • Yann Ylavic's avatar
      Merge r1809881, r1809973, r1809976, r1812075 from trunk: · eb99f1c7
      Yann Ylavic authored
      core: deregister all hooks before leaving pconf, otherwise some late cleanup
      or function call (e.g. ap_log) may use one while DSOs are unloaded.
      
      See PR 61558 (double/second fault).
      
      
      core, MPMs unix: follow up to r1809881.
      
      Deregister all hooks first (in pre_cleanup), by doing it last we could still
      have had them run when DSOs were unloaded.
      
      Likewise, avoid double faults when handling fatal signals by restoring the
      default handler before pconf is cleared (we can't ap_log_error there).
      
      Finally, we need to ignore sig_term/restart (do nothing) when the main
      process is exiting (i.e. ap_pglobal is destroyed), since retained_data are
      freed.
      
      Aimed to fix all faults in PR 61558.
      
      
      MPMs unix: follow up to r1809881 and r1809973.
      
      unset_signals() is called when ap_pglobal is destroyed too.
      
      
      Follow up to r1809881: CHANGES entry.
      
      
      Reviewed by: ylavic, jim, covener
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1820794 13f79535-47bb-0310-9956-ffa450edef68
      eb99f1c7
  13. 04 Jan, 2018 1 commit
  14. 22 Dec, 2017 1 commit