Re: Something is wrong with wal_compression - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: Something is wrong with wal_compression
Date
Msg-id CA+hUKGK=m2_jj5UK=MSaSUACSLA_4cZ6N96L5E2UaOm9iBooNQ@mail.gmail.com
Whole thread Raw
In response to Re: Something is wrong with wal_compression  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Something is wrong with wal_compression
List pgsql-hackers
On Fri, Jan 27, 2023 at 11:14 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Andrey Borodin <amborodin86@gmail.com> writes:
> > On Thu, Jan 26, 2023 at 12:12 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> That test case is demonstrating fundamental
> >> database corruption after a crash.
>
> > Not exactly corruption. XID was not persisted and buffer data did not
> > hit a disk. Database is in the correct state.
>
> Really?  I don't see how this part is even a little bit okay:
>
> [00:40:50.744](0.046s) not ok 3 - xid is aborted after crash
> [00:40:50.745](0.001s)
> [00:40:50.745](0.000s) #   Failed test 'xid is aborted after crash'
> #   at t/011_crash_recovery.pl line 57.
> [00:40:50.746](0.001s) #          got: 'committed'
> #     expected: 'aborted'
>
> If any tuples made by that transaction had reached disk,
> we'd have a problem.

The problem is that the WAL wasn't flushed, allowing the same xid to
be allocated again after crash recovery.  But for any data pages to
hit the disk, we'd have to flush WAL first, so then it couldn't
happen, no?  FWIW I also re-complained about the dangers of anyone
relying on pg_xact_status() for its stated purpose after seeing
tanager's failure[1].

[1] https://www.postgresql.org/message-id/CA%2BhUKGJ9p2JPPMA4eYAKq%3Dr9d_4_8vziet_tS1LEBbiny5-ypA%40mail.gmail.com



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: improving user.c error messages
Next
From: Jelte Fennema
Date:
Subject: Re: run pgindent on a regular basis / scripted manner