From: Ryan Bloom Date: Fri, 10 Nov 2000 21:51:10 +0000 (+0000) Subject: MM has a bug that when you ask for a specific amount of shared memory X-Git-Tag: APACHE_2_0_ALPHA_8~106 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86c61a2932b34943bbd7f4adc5d1951e6eaca6cb;p=thirdparty%2Fapache%2Fhttpd.git MM has a bug that when you ask for a specific amount of shared memory it allocates just that amount. But, MM actually uses some of it, so we need to over allocate just a bit. On 32 bit machines 40 bytes is enough, but on a 64 bit machine it isn't. So, we bump it up to 80 bytes until MM fixes this bug. Submitted by: David Hill git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86916 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/mpm/dexter/scoreboard.c b/server/mpm/dexter/scoreboard.c index 8630ccfb649..d640741684e 100644 --- a/server/mpm/dexter/scoreboard.c +++ b/server/mpm/dexter/scoreboard.c @@ -102,7 +102,7 @@ static void setup_shared_mem(apr_pool_t *p) const char *fname; fname = ap_server_root_relative(p, ap_scoreboard_fname); - if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + 40, fname, p) != APR_SUCCESS) { + if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + 80, fname, p) != APR_SUCCESS) { apr_snprintf(buf, sizeof(buf), "%s: could not open(create) scoreboard", ap_server_argv0); perror(buf); diff --git a/server/mpm/mpmt_pthread/scoreboard.c b/server/mpm/mpmt_pthread/scoreboard.c index 441a7c728e0..9692d9bc664 100644 --- a/server/mpm/mpmt_pthread/scoreboard.c +++ b/server/mpm/mpmt_pthread/scoreboard.c @@ -105,7 +105,7 @@ static void setup_shared_mem(apr_pool_t *p) const char *fname; fname = ap_server_root_relative(p, ap_scoreboard_fname); - if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + NEW_SCOREBOARD_SIZE + 40, fname, p) != APR_SUCCESS) { + if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + NEW_SCOREBOARD_SIZE + 80, fname, p) != APR_SUCCESS) { apr_snprintf(buf, sizeof(buf), "%s: could not open(create) scoreboard", ap_server_argv0); perror(buf); diff --git a/server/mpm/perchild/scoreboard.c b/server/mpm/perchild/scoreboard.c index 5700349b8fc..a956eda0e6e 100644 --- a/server/mpm/perchild/scoreboard.c +++ b/server/mpm/perchild/scoreboard.c @@ -102,7 +102,7 @@ static void setup_shared_mem(apr_pool_t *p) const char *fname; fname = ap_server_root_relative(p, ap_scoreboard_fname); - if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + 40, fname, p) != APR_SUCCESS) { + if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + 80, fname, p) != APR_SUCCESS) { apr_snprintf(buf, sizeof(buf), "%s: could not open(create) scoreboard", ap_server_argv0); perror(buf); diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index ffeefc14121..80183a8ce1d 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -323,7 +323,7 @@ static void setup_shared_mem(apr_pool_t *p) const char *fname; fname = ap_server_root_relative(p, ap_scoreboard_fname); - if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + NEW_SCOREBOARD_SIZE + 40, fname, p) != APR_SUCCESS) { + if (apr_shm_init(&scoreboard_shm, SCOREBOARD_SIZE + NEW_SCOREBOARD_SIZE + 80, fname, p) != APR_SUCCESS) { apr_snprintf(buf, sizeof(buf), "%s: could not open(create) scoreboard", ap_server_argv0); perror(buf);