Re: [16+] subscription can end up in inconsistent state

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: pgsql-bugs@postgresql.org, Robert Haas <robertmhaas@gmail.com>
Date: 2023-09-11T19:00:03Z
Lists: pgsql-bugs
On Mon, 2023-09-11 at 08:59 +0530, Amit Kapila wrote:
> Can we think of calling walrcv_check_conninfo() when the following
> check is true (MySubscription->passwordrequired &&
> !superuser_arg(MySubscription->owner))? IIUC this has to be done for
> both apply_worker and tablesync_worker.

To me, it would make sense to just have walrcv_connect() do both checks
(a) and (b) -- rather than only check (b) -- when must_use_password is
true. Separating these checks (which are really two parts of the same
check) led to this problem in the first place.

Another thought: we may also need to invalidate the subscription worker
in cases where a user loses their superuser status.

Regards,
	Jeff Davis




Commits

  1. Fix buildfarm error from commit 5c31669058.

  2. Re-validate connection string in libpqrcv_connect().