mirror of
https://github.com/postgres/postgres.git
synced 2025-09-05 02:22:28 +03:00
Fix a couple of bugs with wal_log_hints.
1. Replay of the WAL record for setting a bit in the visibility map contained an assertion that a full-page image of that record type can only occur with checksums enabled. But it can also happen with wal_log_hints, so remove the assertion. Unlike checksums, wal_log_hints can be changed on the fly, so it would be complicated to figure out if it was enabled at the time that the WAL record was generated. 2. wal_log_hints has the same effect on the locking needed to read the LSN of a page as data checksums. BufferGetLSNAtomic() didn't get the memo. Backpatch to 9.4, where wal_log_hints was added.
This commit is contained in:
@@ -2496,7 +2496,7 @@ BufferGetLSNAtomic(Buffer buffer)
|
||||
/*
|
||||
* If we don't need locking for correctness, fastpath out.
|
||||
*/
|
||||
if (!DataChecksumsEnabled() || BufferIsLocal(buffer))
|
||||
if (!XLogHintBitIsNeeded() || BufferIsLocal(buffer))
|
||||
return PageGetLSN(page);
|
||||
|
||||
/* Make sure we've got a real buffer, and that we hold a pin on it. */
|
||||
|
Reference in New Issue
Block a user