Hi, Currently pg_start_backup() accesses the shared ControlFile by using ControlFileLock with LW_EXCLUSIVE lock mode. But since that access is read-only operation, LW_SHARED should be chosen instead of LW_EXCLUSIVE.
The attached patch changes the lock mode which pg_start_backup() uses. Is it worth applying this patch? Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
*** a/src/backend/access/transam/xlog.c --- b/src/backend/access/transam/xlog.c *************** *** 7897,7903 **** pg_start_backup(PG_FUNCTION_ARGS) * REDO pointer. The oldest point in WAL that would be needed to * restore starting from the checkpoint is precisely the REDO pointer. */ ! LWLockAcquire(ControlFileLock, LW_EXCLUSIVE); checkpointloc = ControlFile->checkPoint; startpoint = ControlFile->checkPointCopy.redo; LWLockRelease(ControlFileLock); --- 7897,7903 ---- * REDO pointer. The oldest point in WAL that would be needed to * restore starting from the checkpoint is precisely the REDO pointer. */ ! LWLockAcquire(ControlFileLock, LW_SHARED); checkpointloc = ControlFile->checkPoint; startpoint = ControlFile->checkPointCopy.redo; LWLockRelease(ControlFileLock);
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers