On Thu, Apr 23, 2026 at 1:01 AM Bharath Rupireddy <[email protected]> wrote: > > Hi, > > I came across a race condition in pg_get_publication_tables with > concurrent DROP TABLE. pg_get_publication_tables collects table OIDs > without locks on the first call, then opens each table on later calls. > If a table is dropped in between, the function errors with "could not > open relation with OID". >
I agree with the problem statement, this is a weird error: postgres=# select * from pg_publication_tables; ERROR: could not open relation with OID 16390 > This is common in environments where many tables are being created and > dropped while pg_publication_tables is queried, such as with FOR ALL > TABLES publications. > Please find the attached patch that fixes this by skipping > concurrently dropped tables instead of erroring out. Tables created > after the list is built are simply not present in the result set, > which is expected point-in-time behavior with no error. I too think that this should be fixed by skipping the dropped table. Will reveiw patch soon. thanks Shveta
