On Fri, Feb 21, 2025 at 01:42:09PM +0100, Laurenz Albe wrote: > On Fri, 2025-02-21 at 07:00 -0500, Bruce Momjian wrote: > > > > diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml > > > > index 52b5b8f793b..705ca682777 100644 > > > > --- a/doc/src/sgml/wal.sgml > > > > +++ b/doc/src/sgml/wal.sgml > > > > @@ -246,7 +246,7 @@ > > > > </para> > > > > > > > > <para> > > > > - Checksums are normally enabled when the cluster is initialized > > > > using <link > > > > + Checksums can be enabled when the cluster is initialized using <link > > > > > > > > linkend="app-initdb-data-checksums"><application>initdb</application></link>. > > > > They can also be enabled or disabled at a later time as an offline > > > > operation. Data checksums are enabled or disabled at the full > > > > cluster > > > > > > The change looks good for the back branches, but the default has changed > > > in v18: now checksums are the default. So "can be enabled" doesn't sound > > > right for v18. I'd leave "are normally enabled" in HEAD. > > > > Yes, I was confused about that too, but I think we changed the code for > > the development branch and if we decide to keep the new default, we will > > change the docs later. I didn't want to interfere with that. > > Hmpf. The documentation should always be in sync with the code, right? > So I think it should be left alone in HEAD, and if the checksum change > gets reverted, your patch should be applied to HEAD.
I see your point, and I now agree that the "Reliability" section was just overlooked when the data checksum default was changed. I made a larger patch which improved the wording of data checksum mentions now that it is the default in master. I also fixed the Felix-reported problem in all the back branches through 14 --- PG 13 did not have the problem. Patches attached. -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Do not let urgent matters crowd out time for investment in the future.
diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml index 52b5b8f793b..705ca682777 100644 --- a/doc/src/sgml/wal.sgml +++ b/doc/src/sgml/wal.sgml @@ -246,7 +246,7 @@ </para> <para> - Checksums are normally enabled when the cluster is initialized using <link + Checksums can be enabled when the cluster is initialized using <link linkend="app-initdb-data-checksums"><application>initdb</application></link>. They can also be enabled or disabled at a later time as an offline operation. Data checksums are enabled or disabled at the full cluster
diff --git a/doc/src/sgml/amcheck.sgml b/doc/src/sgml/amcheck.sgml index 3af065615bc..a12aa3abf01 100644 --- a/doc/src/sgml/amcheck.sgml +++ b/doc/src/sgml/amcheck.sgml @@ -466,8 +466,8 @@ SET client_min_messages = DEBUG1; </listitem> <listitem> <para> - File system or storage subsystem faults where checksums happen to - simply not be enabled. + File system or storage subsystem faults when data checksums are + disabled. </para> <para> Note that <filename>amcheck</filename> examines a page as represented in some diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 71c4f96d054..e698e74e116 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -3532,8 +3532,8 @@ description | Waiting for a newly initialized WAL file to reach durable storage </para> <para> Number of data page checksum failures detected in this - database (or on a shared object), or NULL if data checksums are not - enabled. + database (or on a shared object), or NULL if data checksums are + disabled. </para></entry> </row> @@ -3543,8 +3543,8 @@ description | Waiting for a newly initialized WAL file to reach durable storage </para> <para> Time at which the last data page checksum failure was detected in - this database (or on a shared object), or NULL if data checksums are not - enabled. + this database (or on a shared object), or NULL if data checksums are + disabled. </para></entry> </row> diff --git a/doc/src/sgml/pageinspect.sgml b/doc/src/sgml/pageinspect.sgml index 27e0598f74c..487c5d758ff 100644 --- a/doc/src/sgml/pageinspect.sgml +++ b/doc/src/sgml/pageinspect.sgml @@ -85,7 +85,7 @@ test=# SELECT * FROM page_header(get_raw_page('pg_class', 0)); <para> The <structfield>checksum</structfield> field is the checksum stored in the page, which might be incorrect if the page is somehow corrupted. If - data checksums are not enabled for this instance, then the value stored + data checksums are disabled for this instance, then the value stored is meaningless. </para> </listitem> diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml index 52b5b8f793b..4fc09761115 100644 --- a/doc/src/sgml/wal.sgml +++ b/doc/src/sgml/wal.sgml @@ -194,10 +194,8 @@ </listitem> <listitem> <para> - Data pages are not currently checksummed by default, though full page images - recorded in WAL records will be protected; see <link - linkend="app-initdb-data-checksums"><application>initdb</application></link> - for details about enabling data checksums. + Data pages are checksummed by default, and full page images + recorded in WAL records are always checksum protected. </para> </listitem> <listitem> @@ -238,15 +236,15 @@ </indexterm> <para> - By default, data pages are not protected by checksums, but this can - optionally be enabled for a cluster. When enabled, each data page includes + By default, data pages are protected by checksums, but this can + optionally be disabled for a cluster. When enabled, each data page includes a checksum that is updated when the page is written and verified each time the page is read. Only data pages are protected by checksums; internal data structures and temporary files are not. </para> <para> - Checksums are normally enabled when the cluster is initialized using <link + Checksums can be disabled when the cluster is initialized using <link linkend="app-initdb-data-checksums"><application>initdb</application></link>. They can also be enabled or disabled at a later time as an offline operation. Data checksums are enabled or disabled at the full cluster