Mailing List Archive

[Bug 7838] - Apache leaves shared memory segments and dies after unclean shutdown
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7838>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7838

Apache leaves shared memory segments and dies after unclean shutdown





------- Additional Comments From erich.prchal@siemens.at 2002-04-08 18:02 -------
I had the same problem, truss is:

from: scoreboard.c, create_namebased_scoreboard:
9935: unlink("/usr/local/apache2/logs/apache_runtime_status") Err#2 ENOENT

from: create_namebased_scoreboard,
else path of filename == NULL, #if APR_USE_SHMEM_SHMGET
9935: open("/usr/local/apache2/logs/apache_runtime_status",
O_WRONLY|O_CREAT|O_EXCL, 0666) = 29
9935: stat64("/usr/local/apache2/logs/apache_runtime_status", 0xFFBEF8A0) = 0
9935: shmget(16778794, 196888, 0600|IPC_CREAT|IPC_EXCL) Err#17 EEXIST

The following change helped:
remove the IPC_EXCL in:
if ((new_m->shmid = shmget(shmkey, new_m->realsize,
SHM_R | SHM_W | IPC_CREAT | IPC_EXCL )) < 0)
{

The scoreboard file was just created with APR_CREATE | APR_EXCL
so I think this should be safe.

A clean solution would be a function in shm.c which does a cleanup if only the
filename
is know and use this instead of the apr_file_remove in scoreboard.c

erich.prchal@siemens.at

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org