On Sun, May 24, 2026 at 5:57 PM SATYANARAYANA NARLAPURAM <
[email protected]> wrote:

> Hi Hackers,
>
> ALTER SUBSCRIPTION ... REFRESH PUBLICATION may crash if a
> subscribed table (or sequence) is dropped concurrently.
>
> In check_publications_origin_tables(), the function iterates over
> subrel_local_oids without holding locks on the individual relations.
> If a table is dropped by another session between when the OID list was
> collected and when get_rel_name() is called, it returns NULL.  That
> NULL is then passed to quote_literal_cstr(), which dereferences it
> unconditionally, causing a segfault. The same pattern exists in
> check_publications_origin_sequences() as well.
>
> Attached a patch to fix this by doing a null check after get_rel_name() and
> get_namespace_name(), and skip the relation if it's gone.
>
> Thanks,
> Satya
>

Hi Satya,
I've reviewed the patch and it looks good, just a small comment - instead
of silently continuing after finding a dropped local table, would you want
to log an error message?

regards,
Ajin Cherian
Fujitsu Australia

Reply via email to