Commit 462b4d0d authored by Jeff Trawick's avatar Jeff Trawick
Browse files

Abort if the MPM is changed across restart.

A new MPM can't be expected to manage the existing state,
particularly if that includes processes from the previous
generation.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1089472 13f79535-47bb-0310-9956-ffa450edef68
parent d478e255
Loading
Loading
Loading
Loading
+2 −0
Changes for CHANGES: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

Changes with Apache 2.3.12

  *) core: Abort if the MPM is changed across restart.  [Jeff Trawick]

  *) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945.
     [Peter Pramberger <peter pramberger.at>, Jim Jagielski]

+12 −1
Changes for server/mpm_common.c: 12 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -386,10 +386,21 @@ AP_DECLARE(const char *)ap_show_mpm(void)

AP_DECLARE(const char *)ap_check_mpm(void)
{
    static const char *last_mpm_name = NULL;

    if (!_hooks.link_mpm || _hooks.link_mpm->nelts == 0)
        return "No MPM loaded.";
    else if (_hooks.link_mpm->nelts > 1)
        return "More than one MPM loaded.";
    else

    if (last_mpm_name) {
        if (strcmp(last_mpm_name, ap_show_mpm())) {
            return "The MPM cannot be changed during restart.";
        }
    }
    else {
        last_mpm_name = apr_pstrdup(ap_pglobal, ap_show_mpm());
    }

    return NULL;
}