mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-08 05:52:55 +00:00
Fix direct reading from WAL buffers. (#9639)
Fix direct reading from WAL buffers. Pointer wasn't advanced which resulted in sending corrupted WAL if part of read used WAL buffers and part read from the file. Also move it to neon_walreader so that e.g. replication could also make use of it. ref https://github.com/neondatabase/cloud/issues/19567
This commit is contained in:
@@ -4177,9 +4177,15 @@ class Safekeeper(LogUtils):
|
||||
return self
|
||||
|
||||
def assert_no_errors(self):
|
||||
assert not self.log_contains("manager task finished prematurely")
|
||||
assert not self.log_contains("error while acquiring WalResidentTimeline guard")
|
||||
assert not self.log_contains("timeout while acquiring WalResidentTimeline guard")
|
||||
not_allowed = [
|
||||
"manager task finished prematurely",
|
||||
"error while acquiring WalResidentTimeline guard",
|
||||
"timeout while acquiring WalResidentTimeline guard",
|
||||
"invalid xlog page header:",
|
||||
"WAL record crc mismatch at",
|
||||
]
|
||||
for na in not_allowed:
|
||||
assert not self.log_contains(na)
|
||||
|
||||
def append_logical_message(
|
||||
self, tenant_id: TenantId, timeline_id: TimelineId, request: dict[str, Any]
|
||||
|
||||
Reference in New Issue
Block a user