From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Noah Misch <noah(at)leadboat(dot)com>, Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
Cc: | Dmitry Koval <d(dot)koval(at)postgrespro(dot)ru>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: collect_corrupt_items_vacuum.patch |
Date: | 2024-08-13 18:39:11 |
Message-ID: | 42218c4f-2c8d-40a3-8743-4d34dd0e4cce@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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)
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2024-08-13 19:00:00 | Re: Apply PGDLLIMPORT markings to some GUC variables |
Previous Message | Peter Geoghegan | 2024-08-13 18:39:10 | Re: btree: implement dynamic prefix truncation (was: Improving btree performance through specializing by key shape, take 2) |