Konstantin Knizhnik
|
b00a0096bf
|
Reintialize page in allocNewBuffer only when buffer is returned (#12399)
## Problem
See https://github.com/neondatabase/neon/issues/12387
`allocNewBuffer` initialise page with zeros
but not always return it because of parity checks.
In case of wrong parity the page is rejected and as a result we have
dirty page with zero LSN, which cause assertion failure on neon_write
when page is evicted from shared buffers.
## Summary of changes
Perform, page initialisation in `allocNewBuffer` only when buffer is
returned (parity check is passed).
Postgres PRs:
https://github.com/neondatabase/postgres/pull/661
https://github.com/neondatabase/postgres/pull/662
https://github.com/neondatabase/postgres/pull/663
https://github.com/neondatabase/postgres/pull/664
---------
Co-authored-by: Konstantin Knizhnik <knizhnik@neon.tech>
Co-authored-by: Kosntantin Knizhnik <konstantin.knizhnik@databricks.com>
|
2025-07-22 17:50:26 +00:00 |
|