Re: Major Version Upgrade failure due to orphan roles entries in catalog

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Virender Singla <virender(dot)cse(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org, Aniket Jha <aniketkumarj(at)gmail(dot)com>
Subject: Re: Major Version Upgrade failure due to orphan roles entries in catalog
Date: 2025-02-20 22:19:34
Message-ID: 2939991.1740089974@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

=?utf-8?Q?=C3=81lvaro?= Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:
> Hmm, I think fixing the bug as Tom suggests downthread is probably a
> good idea, but I think we should in addition change pg_dumpall to avoid
> printing a GRANT line if there's no grantee. Maybe turning one of these LEFT
> JOINs into a regular inner join is a sufficient fix for that:

After looking at this I thought it was worth a little more code to warn
about the dangling role OID, instead of just silently ignoring it.
Here's a couple of more-polished patches.

I'm unsure whether to back-patch the 0001 patch, as it does imply
more pg_shdepend entries than we have today, so it's sort of a
backdoor catalog change. But we're mostly interested in the
transient behavior of having a lock+recheck during entry insertion,
so maybe it's fine. 0002 should be back-patched in any case.

(BTW, I was distressed to learn from the code coverage report
that we have zero test coverage of the hardly-trivial logic in
dumpRoleMembership. I didn't try to address that here. I did
test this new logic by dint of manually deleting from pg_authid.)

regards, tom lane

Attachment Content-Type Size
v1-0001-Avoid-race-condition-between-GRANT-role-and-DROP-.patch text/x-diff 7.5 KB
v1-0002-Fix-pg_dumpall-to-cope-with-dangling-OIDs-in-pg_a.patch text/x-diff 5.4 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Vladlen Popolitov 2025-02-21 04:57:54 Re: Error in form on site commitfest.postgresql.org
Previous Message Marlene Saransig 2025-02-20 19:33:35 Re: BUG #18821: Need delete files in pg_wal, size is bigger overcome limit max_wal_size