Re: collect_corrupt_items_vacuum.patch - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: collect_corrupt_items_vacuum.patch
Date
Msg-id 42218c4f-2c8d-40a3-8743-4d34dd0e4cce@iki.fi
Whole thread Raw
In response to Re: collect_corrupt_items_vacuum.patch  (Noah Misch <noah@leadboat.com>)
Responses Re: collect_corrupt_items_vacuum.patch
List pgsql-hackers
This causes an assertion failure when executed in a hot standby server:

  select * from pg_check_visible('pg_database');

TRAP: failed Assert("!RecoveryInProgress()"), File: 
"../src/backend/storage/ipc/procarray.c", Line: 2710, PID: 1142572

GetStrictOldestNonRemovableTransactionId does this:

>     if (rel == NULL || rel->rd_rel->relisshared || RecoveryInProgress())
>     {
>         /* Shared relation: take into account all running xids */
>         runningTransactions = GetRunningTransactionData();
>         LWLockRelease(ProcArrayLock);
>         LWLockRelease(XidGenLock);
>         return runningTransactions->oldestRunningXid;
>     }

And GetRunningTransactionData() has this:

>     Assert(!RecoveryInProgress());

So it's easy to see that you will hit that assertion.

-- 
Heikki Linnakangas
Neon (https://neon.tech)




pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: btree: implement dynamic prefix truncation (was: Improving btree performance through specializing by key shape, take 2)
Next
From: Robert Haas
Date:
Subject: Re: Apply PGDLLIMPORT markings to some GUC variables