1. 24 Aug, 2006 1 commit
  2. 14 Aug, 2006 2 commits
    • Chris Darroch's avatar
      Introduce a check_config phase between pre_config and open_logs, · e2725f04
      Chris Darroch authored
      to allow modules to review interdependent configuration directive
      values and adjust them while messages can still be logged to the
      console.
      
      The open_logs phase is already used somewhat for this purpose by
      certain MPMs (winnt, prefork, worker, and event) but only by forcing
      their functions ahead of the core ap_open_logs() function, and
      since this phase runs after the ap_signal_server function during startup,
      it can not be used to generate messages on the console when restarting.
      
      Add the check_config phase to mod_info and mod_example.
      
      Handle relevant MPM directives during this phase and format messages
      for both the console and the error log, as appropriate.  Bounds and sanity
      checks on the values of the MPM directives are handled in sequence in
      this phase instead of in the various directive handling functions, since
      those functions (e.g., set_max_clients()) may not be called at all if their
      directives do not appear in the configuration files, and even if they
      are called, there is no guarantee that this will occur in any particular
      order.
      
      Remove from the worker and event MPMs the code in the pre_config phase
      that alters the configuration node tree by re-ordering ThreadsPerChild
      ahead of MaxClients.  This code is effective but insufficient; for
      example, if ServerLimit follows MaxClients, the test against server_limit
      in set_max_clients() is invalid.  (In practice, this only results in
      incorrect or absent warnings on the console, because server_limit is
      set to its configured value when the main loop re-runs the configuration
      process.)
      
      Prevent ap_threads_per_child from exceeding thread_limit in the
      winnt, worker, and event MPMs.  This situation could occur if
      ThreadsPerChild was not specified in the configuration files and
      ThreadLimit was set to a value smaller than DEFAULT_THREADS_PER_CHILD,
      because set_threads_per_child() would never be called and therefore
      its bounds check against thread_limit would not be performed.
      
      Remove from the winnt, prefork, worker, and event MPMs the
      changed_limit_at_restart flag.  Set the first_server_limit and
      first_thread_limit values during the first execution of the check_config
      function, and use them to detect changes to ServerLimit and ThreadLimit
      across restarts and issue appropriately formatted warnings.  Remove the
      comments about the error log being a "bit bucket"; this was true when
      the code was originally committed in r92530 but that was due to a bug
      fixed in r92769.
      
      Be consistent about setting all MPM configuration directive values in the
      pre_config phase.
      
      Rephrase and reformat the console and log file messages relating to
      MPM configuration directives to be consistent across all MPMs.  Use
      briefer messages when logging to the error log than to the console.
      
      Update miscellaneous stale comments and messages (e.g., reference to
      daemons_min_free in worker and event MPMs, "prefork open_logs" in
      winnt MPM, and StartServers in netware MPM).
      
      The winnt, netware, beos, and mpmt_os2 MPMs should be tested by developers
      with access to those platforms, especially the winnt MPM, which has
      unique logic with respect to distinguishing between parent and child
      processes during the configuration phases.
      
      Update the English documentation for the worker MPM's ThreadsPerChild
      directive, which no longer needs to precede other MPM directives in the
      configuration files if it has a non-default value.  The German (.de) and
      Japanese (.ja) translations should be updated by developers fluent in
      those languages.
      
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@431460 13f79535-47bb-0310-9956-ffa450edef68
      e2725f04
    • Nick Kew's avatar
      Note bugfix · 90989779
      Nick Kew authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@431342 13f79535-47bb-0310-9956-ffa450edef68
      90989779
  3. 08 Aug, 2006 1 commit
  4. 02 Aug, 2006 1 commit
  5. 31 Jul, 2006 1 commit
  6. 27 Jul, 2006 1 commit
  7. 26 Jul, 2006 5 commits
  8. 25 Jul, 2006 1 commit
  9. 24 Jul, 2006 1 commit
  10. 23 Jul, 2006 1 commit
  11. 20 Jul, 2006 2 commits
  12. 13 Jul, 2006 1 commit
  13. 12 Jul, 2006 1 commit
  14. 09 Jul, 2006 1 commit
  15. 27 Jun, 2006 1 commit
  16. 26 Jun, 2006 2 commits
  17. 22 Jun, 2006 6 commits
  18. 14 Jun, 2006 1 commit
  19. 03 Jun, 2006 3 commits
  20. 02 Jun, 2006 1 commit
  21. 01 Jun, 2006 1 commit
  22. 30 May, 2006 1 commit
    • Ruediger Pluem's avatar
      * Keep the Content-Type for successfully revalidated · 49d8d09a
      Ruediger Pluem authored
        cached objects, by unsetting possible Content-Type headers in
        r->headers_out and r->err_headers_out as they may be different to what
        we have received from the cache.
        Actually they are not needed as r->content_type set by
        ap_set_content_type a few lines above will be used in the store_headers
        functions of the storage providers as a fallback and the HTTP_HEADER filter
        does overwrite the Content-Type header with r->content_type anyway.
      
      PR: 39647
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@410370 13f79535-47bb-0310-9956-ffa450edef68
      49d8d09a
  23. 28 May, 2006 1 commit
  24. 26 May, 2006 2 commits
    • Chris Darroch's avatar
      On graceless shutdown or restart, send AP_SIG_GRACEFUL to all worker · 14774214
      Chris Darroch authored
      threads so that any that are polling on Keep-Alive connections will
      wake up and exit promptly.  Otherwise, on Linux, they wait until
      poll()'s timeout interval completes, which is often too long for
      the parent process; the parent issues SIGKILL before the child's main
      thread manages to re-join all the worker threads.  PR 38737.
      
      On Solaris, by contrast, the close_worker_sockets() function
      successfully alerts all worker threads that they should exit quickly.
      On Linux, this side-effect of one thread closing another's socket
      doesn't occur; see:
      
      http://bugme.osdl.org/show_bug.cgi?id=546
      
      Also, expand on the placeholder in CHANGES regarding previous
      cleanups to scoreboard.c and scoreboard.h in r404848 and r404849.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@409715 13f79535-47bb-0310-9956-ffa450edef68
      14774214
    • Chris Darroch's avatar
      Make the worker and event MPMs not touch the scoreboard when · 053c9598
      Chris Darroch authored
      handling a fork() failure.  The previous behaviour appears to have
      been inherited from the prefork MPM, where is it appropriate.
      
      The prefork MPM sets thread_limit to 1 and therefore each
      child process has a single worker_score structure in the scoreboard's
      array, i.e., ap_scoreboard_image->servers[slot][0].  In make_child(),
      it sets this structure's status to SERVER_STARTING, and then does
      a fork(); if the fork() fails, it resets the status to SERVER_DEAD.
      
      The worker and event MPMs, by constrast, obviously use multiple
      worker_score structures per child process.  They may also be
      in use by worker threads from a previous generation at any particular
      moment.  Therefore make_child() and the parent process in general
      doesn't normally update them; make_child() doesn't set them all
      to SERVER_STARTING before doing fork(), for example.
      
      So, make_child() shouldn't set them to SERVER_DEAD if fork()
      fails (and even if it should, it certainly shouldn't be just
      updating the first one).
      
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@409693 13f79535-47bb-0310-9956-ffa450edef68
      053c9598
  25. 21 May, 2006 1 commit