--- ../httpd-2.4.3-org/httpd-2.4.3/server/scoreboard.c 2012-08-14 16:59:24.000000000 -0700 +++ server/scoreboard.c 2013-01-15 22:06:09.575503714 -0800 @@ -179,13 +179,19 @@ /* The shared memory file must not exist before we create the * segment. */ - apr_shm_remove(fname, pool); /* ignore errors */ + rv = apr_shm_remove(fname, pool); + if (rv != APR_SUCCESS) { + ap_log_error(APLOG_MARK, APLOG_INFO, rv, ap_server_conf, APLOGNO(00001) + "Unable to remove the old scoreboard file \"%s\".", fname); + } rv = apr_shm_create(&ap_scoreboard_shm, scoreboard_size, fname, pool); if (rv != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_CRIT, rv, ap_server_conf, APLOGNO(00001) - "unable to create or access scoreboard \"%s\" " - "(name-based shared memory failure)", fname); + "Unable to create or access scoreboard \"%s\" with size %u " + "(name-based shared memory failure). " + "Please check the 'ServerLimit' and 'ThreadLimit' settings, or the memory usage.", + fname, scoreboard_size); return rv; } #endif /* APR_HAS_SHARED_MEMORY */ @@ -231,8 +237,10 @@ global_pool); /* anonymous shared memory */ if ((rv != APR_SUCCESS) && (rv != APR_ENOTIMPL)) { ap_log_error(APLOG_MARK, APLOG_CRIT, rv, ap_server_conf, APLOGNO(00004) - "Unable to create or access scoreboard " - "(anonymous shared memory failure)"); + "Unable to create or access scoreboard with size %u " + "(anonymous shared memory failure). " + "Please check the 'ServerLimit' and 'ThreadLimit' settings, or the disk space.", + scoreboard_size); return rv; } /* Make up a filename and do name-based shmem */