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 →
-
Sort DO_SUBSCRIPTION_REL dump objects independent of OIDs.
- 573e679a2664 18.2 landed
- 1cdc07ad5ae5 17.8 landed
- d49936f3028b 19 (unreleased) landed
-
Sort dump objects independent of OIDs, for the 7 holdout object types.
- 0decd5e89db9 19 (unreleased) cited
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?