From: Maxim Dounin Date: Mon, 10 Dec 2012 18:17:32 +0000 (+0000) Subject: Merge of r4933, r4933: shared memory fixes. X-Git-Tag: release-1.2.6~2 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=f45e938b89d0ef3967bf95216bd3f63ef5e65429;p=nginx.git 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. --- diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c index f15372990..e8b155921 100644 --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -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) diff --git a/src/core/ngx_shmtx.c b/src/core/ngx_shmtx.c index 6cf7af58a..a62999f33 100644 --- a/src/core/ngx_shmtx.c +++ b/src/core/ngx_shmtx.c @@ -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; }