1. 02 Dec, 2016 4 commits
    • Jim Jagielski's avatar
      Merge r1738631, r1738633, r1738635, r1757030, r1757031, r1770752, r1770768 from trunk: · e7407f84
      Jim Jagielski authored
      Don't take over scoreboard slots from gracefully finishing threads
      
      Otherwise the old and the new thread will both update the same scoreboard slot
      with undefined results.
      
      
      
      add comments
      
      Document which directives set which variables
      
      
      Make ap_find_child_by_pid() look at all slots that have ever been used.
      
      This is preparation to allow to use more scoreboard slots in mpm event.
      
      
      mpm_event: minor code simplification
      
      - move variable initializations into declarations
      - use max_workers variable
      
      
      mpm_event: don't re-use scoreboard slots that are still in use
      
      This causes inconsistent data in the scoreboard (due to async
      connections) and makes it difficult to determine what is going on.
      Therefore it is not a useful fix for the scoreboard-full issues (PR
      53555).
      
      The consent on the dev list is that we should allocate/use more
      scoreboard entries instead.
      
      
      Use all available scoreboard slots
      
      Allow to use all slots up to ServerLimit. This makes 'scoreboard full'
      errors much less likely.
      
      And if ther is a situation where the scoreboard is full, don't make any
      more processes finish gracefully due to reduced load until some old
      processes have terminated. Otherwise, the situation would get worse once
      the load increases again.
      
      ap_daemon_limit is renamed to the more descriptive active_server_limit,
      to make sure that all its uses are taken care of.
      
      PR 53555
      
      
      
      mpm_event: add clarifying comment
      
      from jim
      
      Submitted by: sf
      Reviewed/backported by: jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1772335 13f79535-47bb-0310-9956-ffa450edef68
      e7407f84
    • Jim Jagielski's avatar
      Merge r1705922, r1706523, r1738464, r1738466, r1738486 from trunk: · a61a4bd0
      Jim Jagielski authored
      When shutting down a process, free resources early
      
      Due to lingering connections, shutting down a process may take a very
      long time. Free all recycled pools early in the hope that we can already
      give some memory back to the OS.
      
      
      rename some variables to be more descriptive
      
      pid -> pslot
      tid -> tslot
      remove unused 'sd'
      
      
      Terminate keep-alive connections when dying
      
      When shutting down a process gracefully, terminate keep-alive connections so
      that we don't get any new requests which may keep the dying process alive
      longer.
      
      
      
      Exit threads early during shutdown
      
      During graceful shutdown, if there are more running worker threads than open
      connections, terminate some threads. This frees resources faster, which may be
      needed for new processes.
      
      
      
      Exit threads early during shutdown, part 2
      
      Follow up to r1738466: During graceful shutdown, when the listener thread is
      closing a connection, it needs to wake up a worker thread so that it may
      terminate.
      
      
      Submitted by: sf
      Reviewed/backported by: jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1772334 13f79535-47bb-0310-9956-ffa450edef68
      a61a4bd0
    • Jim Jagielski's avatar
      Merge r1738628, r1757009, r1756848, r1757029 from trunk: · a489a662
      Jim Jagielski authored
      Display process slot number in the async overview 
      
      
      Fix the number of column for 'Async connections'.
      There are only 3 columns (writing, keep-alive, closing), not 4.
      
      Try to improve the code layout for it to be more readable.
      Each <th> is on its own line so keep the corresponding "colspan" <td> fields grouped together.
      
      r1738628 introduced a new column, 'Slot'.
      Add an empty cell for it in the last line of the table, in order to fix the layout of the Totals.
      
      Replace tab by spaces to be consistent
      
      mod_status: note stopping procs in async info table
      
      * add new column "stopping", denoting if a process is shutting down
      * add additional "(old gen)", if a process is from before a graceful reload
      * add counts of processes and stopping processes to summary line
      
      
      Submitted by: sf, jailletc36, jailletc36, sf
      Reviewed/backported by: jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1772333 13f79535-47bb-0310-9956-ffa450edef68
      a489a662
    • Jim Jagielski's avatar
      Merge r1597533, r1649491, r1665216, r1756553, r1756631, r1726675, r1718496,... · 92230a27
      Jim Jagielski authored
      Merge r1597533, r1649491, r1665216, r1756553, r1756631, r1726675, r1718496, r1718476, r1747469 from trunk:
      
      mod_cache: try to use the key of a possible open but stale cache entry
      if we have one in cache_try_lock(). PR 50317
      
      Submitted by: Ruediger Pluem
      
      
      * modules/cache/mod_socache_memcache.c (socache_mc_store): Pass
        through expiration time.
      
      Submitted by: Faidon Liambotis <paravoid debian.org>, jorton
      
      
      * mod_cache: Preserve the Content-Type in case of 304 response.
      304 does not contain Content-Type and mod_mime regenerates
      the Content-Type based on the r->filename. This later leads to original
      Content-Type to be lost (overwriten by whatever mod_mime generates).
      
      
      mod_cache: Use the actual URI path and query-string for identifying the
      cached entity (key), such that rewrites are taken into account when
      running afterwards (CacheQuickHandler off).  PR 21935.
       
      
      
      mod_cache: follow up to r1756553: log the real/actual cached URI (debug).
      
      
      
      better s-maxage support
       
      +  *) mod_cache: Consider Cache-Control: s-maxage in expiration
      +     calculations.  [Eric Covener]
      +
      +  *) mod_cache: Allow caching of responses with an Expires header
      +     in the past that also has Cache-Control: max-age or s-maxage.
      +     PR55156. [Eric Covener]
      
      
      
      
      remove dead code leftover from r1023387. 
      
      Prior to this revision, there was an apr_atoi64 in this context.
      Now, ap_cache_control() sets control.max_age (which is checked here) when
      the maxage value was parsed OK.
      
      
      
      duplicate debug-level AH00764 in the just-validated path.
      
      
      
      Rename ap_casecmpstr[n]() to ap_cstr_casecmp[n](), update with APR doxygen
      Submitted by: jkaluza, jorton, jkaluza, ylavic, ylavic, covener, covener, covener, wrowe
      Reviewed/backported by: jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1772331 13f79535-47bb-0310-9956-ffa450edef68
      92230a27
  2. 23 Nov, 2016 1 commit
  3. 22 Nov, 2016 1 commit
  4. 21 Nov, 2016 1 commit
  5. 14 Nov, 2016 4 commits
  6. 04 Nov, 2016 2 commits
  7. 02 Nov, 2016 1 commit
  8. 01 Nov, 2016 3 commits
  9. 27 Oct, 2016 1 commit
  10. 24 Oct, 2016 1 commit
  11. 17 Oct, 2016 1 commit
  12. 11 Oct, 2016 1 commit
  13. 03 Oct, 2016 1 commit
  14. 19 Sep, 2016 1 commit
  15. 06 Sep, 2016 1 commit
    • Jim Jagielski's avatar
      Merge r1758307, r1758308, r1758309, r1758311 from trunk: · 0a4ab924
      Jim Jagielski authored
      mpm_winnt: remove 'data' AcceptFilter in favor of 'connect'
      
      The 'data' AcceptFilter optimization instructs Windows to wait until
      data is received on a connection before completing the AcceptEx
      operation. Unfortunately, it seems this isn't performed atomically --
      AcceptEx "partially" accepts the incoming connection during the wait for
      data, leaving all other incoming connections in the accept queue. This
      opens the server to a denial of service.
      
      Since the fix for this requires a substantial rearchitecture (likely
      involving multiple outstanding calls to AcceptEx), disable the 'data'
      filter for now and replace it with 'connect', which uses the AcceptEx
      interface but does not wait for data.
      
      Users running prior releases of httpd on Windows should explicitly move
      to a 'connect' AcceptFilter in their configurations if they are
      currently using the default 'data' filter.
      
      Many thanks to mludha, Arthur Ramsey, Paul Spangler, and many others for
      their assistance in tracking down and diagnosing this issue.
      
      PR: 59970
      
      mpm_winnt: remove the AcceptEx data network bucket
      
      Follow-up to the prior commit: without an incoming data buffer, the
      custom network bucket code is now orphaned and we can remove it
      entirely. This has the added benefit that we are no longer using the
      internal OVERLAPPED.Pointer field, which is discouraged by the MSDN
      docs.
      
      mpm_winnt: remove duplication of ap_process_connection
      
      Further follow-up to the previous commit: now that we no longer patch a
      network bucket into the brigade, we can revert to calling
      ap_process_connection() directly instead of duplicating its logic.
      
      docs: rebuild
      Submitted by: jchampion
      Reviewed/backported by: jim
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1759471 13f79535-47bb-0310-9956-ffa450edef68
      0a4ab924
  16. 01 Sep, 2016 1 commit
  17. 30 Aug, 2016 1 commit
  18. 27 Aug, 2016 1 commit
  19. 25 Aug, 2016 5 commits
  20. 24 Aug, 2016 1 commit
  21. 16 Aug, 2016 5 commits
  22. 03 Aug, 2016 1 commit
  23. 22 Jul, 2016 1 commit