safekeeper: downgrade interpreted reader errors (#11034)

## Problem

This `critical!` could fire on IO errors, which is just noisy.

Resolves #11027.

## Summary of changes

Downgrade to error, except for decode errors. These could be either data
corruption or a bug, but seem worth investigating either way.
This commit is contained in:
Erik Grinaker
2025-02-28 15:06:56 +01:00
committed by GitHub
parent 7c53fd0d56
commit c7ff3c4c9b

View File

@@ -287,7 +287,13 @@ impl InterpretedWalReader {
reader
.run_impl(start_pos)
.await
.inspect_err(|err| critical!("failed to read WAL record: {err:?}"))
.inspect_err(|err| match err {
// TODO: we may want to differentiate these errors further.
InterpretedWalReaderError::Decode(_) => {
critical!("failed to decode WAL record: {err:?}");
}
err => error!("failed to read WAL record: {err}"),
})
}
.instrument(info_span!("interpreted wal reader")),
);
@@ -347,10 +353,12 @@ impl InterpretedWalReader {
metric.dec();
}
if let Err(err) = self.run_impl(start_pos).await {
critical!("failed to read WAL record: {err:?}");
} else {
info!("interpreted wal reader exiting");
match self.run_impl(start_pos).await {
Err(err @ InterpretedWalReaderError::Decode(_)) => {
critical!("failed to decode WAL record: {err:?}");
}
Err(err) => error!("failed to read WAL record: {err}"),
Ok(()) => info!("interpreted wal reader exiting"),
}
Err(CopyStreamHandlerEnd::Other(anyhow!(