| From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> | 
|---|---|
| To: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> | 
| Cc: | Noah Misch <noah(at)leadboat(dot)com>, 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 19:15:52 | 
| Message-ID: | CAPpHfdscrsKdw12Xi8zgkmUCYuL3RCXAJF-a_pK0-QZ=1hQq2w@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Tue, Aug 13, 2024 at 9:39 PM Heikki Linnakangas <hlinnaka(at)iki(dot)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!
------
Regards,
Alexander Korotkov
Supabase
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dmitry Dolgov | 2024-08-13 20:06:13 | Re: pg_stat_statements and "IN" conditions | 
| Previous Message | Robert Haas | 2024-08-13 19:00:00 | Re: Apply PGDLLIMPORT markings to some GUC variables |