Quick question how does the apr use the shm segments and why does it have a slotmem error if we use mod_proxy with several balancer name calls and multiple hosts apache servers on a single dev box? I am really trying to understand how this code segment below works?
shm.c file call? #if APR_USE_SHMEM_SHMGET 71 static key_t our_ftok(const char *filename) 72 { 73 /* to help avoid collisions while still using 74 * an easily recreated proj_id */ 75 apr_ssize_t slen = strlen(filename); 76 return ftok(filename, 77 (int)apr_hashfunc_default(filename, &slen)); 78 } 79 #endif APR_PERMS_SET_IMPLEMENT(shm) 696 { 697 #if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON 698 struct shmid_ds shmbuf; 699 int shmid; 700 apr_shm_t *m = (apr_shm_t *)theshm; 701 702 if ((shmid = shmget(m->shmkey, 0, SHM_R | SHM_W)) == -1) { 703 return errno; 704 } 705 shmbuf.shm_perm.uid = uid; 706 shmbuf.shm_perm.gid = gid; 707 shmbuf.shm_perm.mode = apr_unix_perms2mode(perms); 708 if (shmctl(shmid, IPC_SET, &shmbuf) == -1) { 709 return errno; 710 } 711 return APR_SUCCESS; 712 #else 713 return APR_ENOTIMPL; 714 #endif 715 } 716 shmbuf.shm_perm.uid = uid; 706 shmbuf.shm_perm.gid = gid; 707 shmbuf.shm_perm.mode = apr_unix_perms2mode(perms);