lockmode_v1.patch

text/x-patch

Filename: lockmode_v1.patch
Type: text/x-patch
Part: 0
Message: lock mode for ControlFileLock which pg_start_backup uses

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: context
Series: patch v1
File+
src/backend/access/transam/xlog.c 1 0
*** 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);