Re: collect_corrupt_items_vacuum.patch
От | Alexander Korotkov |
---|---|
Тема | Re: collect_corrupt_items_vacuum.patch |
Дата | |
Msg-id | CAPpHfdtDOCab_RrpkH2Uk6y=BdxS_iPMAOg88dGqzoeUgwZF2A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: collect_corrupt_items_vacuum.patch (Alexander Korotkov <aekorotkov@gmail.com>) |
Ответы |
Re: collect_corrupt_items_vacuum.patch
|
Список | pgsql-hackers |
On Tue, Aug 13, 2024 at 10:15 PM Alexander Korotkov <aekorotkov@gmail.com> wrote: > On Tue, Aug 13, 2024 at 9:39 PM Heikki Linnakangas <hlinnaka@iki.fi> wrote: > > > > 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. > > Oh, thank you! > I'll fix this and add a test for recovery! Attached patch fixes the problem and adds the corresponding test. I would appreciate if you take a look at it. ------ Regards, Alexander Korotkov Supabase
Вложения
В списке pgsql-hackers по дате отправления: