Re: pg_dump crash due to incomplete ordering of DO_SUBSCRIPTION_REL objects

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: vignesh C <vignesh21@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-12-15T18:30:18Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Sort DO_SUBSCRIPTION_REL dump objects independent of OIDs.

  2. Sort dump objects independent of OIDs, for the 7 holdout object types.

On Mon, Dec 15, 2025 at 11:35:35PM +0530, vignesh C wrote:
> While verifying upgrade of subscriber instance, I noticed pg_dump
> crash caused by incomplete sorting logic for DO_SUBSCRIPTION_REL
> objects in DOTypeNameCompare(). When multiple subscription–relation
> entries belong to the same subscription, the comparison does not
> establish a complete ordering. In this case, the comparison falls
> through to the generic assertion path. The attached patch fixes this
> by extending the comparison for DO_SUBSCRIPTION_REL objects to include
> deterministic ordering keys. After the subscription name comparison,
> entries are ordered by the referenced table's schema name and then by
> table name.
> 
> This issue has started failing after commit:
> commit 0decd5e89db9f5edb9b27351082f0d74aae7a9b6
> Sort dump objects independent of OIDs, for the 7 holdout object types.
> 
> This can be reproduced by having logical replication setup with
> subscription subscribing to few tables.

That makes sense.  Thanks.  Do you have commands we could add to
src/test/regress/sql/subscription.sql to cover this code?