Merge of r4933, r4933: shared memory fixes.
*) Fixed location of debug message in ngx_shmtx_lock(). *) Core: don't reuse shared memory zone that changed ownership (ticket #210). nginx doesn't allow the same shared memory zone to be used for different purposes, but failed to check this on reconfiguration. If a shared memory zone was used for another purpose in the new configuration, nginx attempted to reuse it and crashed.
This commit is contained in:
parent
6bb2bf4cf6
commit
3428ae9ab1
|
@ -447,7 +447,9 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (shm_zone[i].shm.size == oshm_zone[n].shm.size) {
|
||||
if (shm_zone[i].tag == oshm_zone[n].tag
|
||||
&& shm_zone[i].shm.size == oshm_zone[n].shm.size)
|
||||
{
|
||||
shm_zone[i].shm.addr = oshm_zone[n].shm.addr;
|
||||
|
||||
if (shm_zone[i].init(&shm_zone[i], oshm_zone[n].data)
|
||||
|
|
|
@ -117,11 +117,11 @@ ngx_shmtx_lock(ngx_shmtx_t *mtx)
|
|||
"sem_wait() failed while waiting on shmtx");
|
||||
break;
|
||||
}
|
||||
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0,
|
||||
"shmtx awoke");
|
||||
}
|
||||
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0,
|
||||
"shmtx awoke");
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue