Обсуждение: pgsql: Fix incorrect initialization of ProcGlobal->startupBufferPinWait
Fix incorrect initialization of ProcGlobal->startupBufferPinWaitBufId. It was initialized in the wrong place and to the wrong value. With bad luck this could result in incorrect query-cancellation failures in hot standby sessions, should a HS backend be holding pin on buffer number 1 while trying to acquire a lock. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/2e53bd5517431637e495c7614761e5aae46b4eba Modified Files -------------- src/backend/storage/buffer/bufmgr.c | 3 ++- src/backend/storage/lmgr/proc.c | 10 ++++------ src/include/storage/proc.h | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-)
On Tue, Aug 2, 2011 at 6:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Fix incorrect initialization of ProcGlobal->startupBufferPinWaitBufId. > > It was initialized in the wrong place and to the wrong value. With bad > luck this could result in incorrect query-cancellation failures in hot > standby sessions, should a HS backend be holding pin on buffer number 1 > while trying to acquire a lock. Did I miss a bug report? -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Simon Riggs <simon@2ndQuadrant.com> writes: > On Tue, Aug 2, 2011 at 6:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Fix incorrect initialization of ProcGlobal->startupBufferPinWaitBufId. >> >> It was initialized in the wrong place and to the wrong value. �With bad >> luck this could result in incorrect query-cancellation failures in hot >> standby sessions, should a HS backend be holding pin on buffer number 1 >> while trying to acquire a lock. > Did I miss a bug report? No, this was something I happened across in code-reading a few weeks ago and had a note to myself to fix. While looking at it today I found more problems ... see second commit. regards, tom lane
On Tue, Aug 2, 2011 at 8:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Simon Riggs <simon@2ndQuadrant.com> writes: >> On Tue, Aug 2, 2011 at 6:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> Fix incorrect initialization of ProcGlobal->startupBufferPinWaitBufId. >>> >>> It was initialized in the wrong place and to the wrong value. With bad >>> luck this could result in incorrect query-cancellation failures in hot >>> standby sessions, should a HS backend be holding pin on buffer number 1 >>> while trying to acquire a lock. > >> Did I miss a bug report? > > No, this was something I happened across in code-reading a few weeks ago > and had a note to myself to fix. While looking at it today I found more > problems ... see second commit. I'm happy to fix problems I've caused that are reported to me. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services