Re: ReplicationSlotRelease() crashes when the instance is in the single user mode
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Cc: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>,
Michael Paquier <michael@paquier.xyz>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2025-02-20T11:31:33Z
Lists: pgsql-hackers
On Thu, Feb 20, 2025 at 4:26 PM Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com> wrote: > > On Thursday, February 20, 2025 10:23 AM Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com> wrote: > > > > Dear Michael, > > > > > I did not check how these call behave individually, just a few > > > comments while putting my eyes on the patch. > > > > > > + if (!IsUnderPostmaster) > > > + elog(ERROR, > > > + "slot operation is prohibited in the single user > > mode"); > > > > > > elog() should not be used for failures that can be user-facing as this > > > would not provide any translation. > > > > I intentionally used elog() because I thought single user mode is not > > user-facing. > > But it is OK for me to use ereport() instead. > > > > > I'd suggest rewording the error message to provide some more context, > > > as well, say: > > > "cannot use %s in single-user mode", "function_name" > > > > Fixed. PSA new version > > I'm curious about the scope of the restrictions we plan to add. For example, > the current patch does not include checks in the functions used for consuming > changes (such as pg_logical_slot_get_changes). Was this omission intentional? > Also, what about pg_replication_origin_* APIs? Do we want to restrict those as well if we are restricting slot operations? I don't see any solid theory presented in this thread on why we should add new checks in multiple APIs restricting those in single-user mode. -- With Regards, Amit Kapila.
Commits
-
Fix assertion failure with replication slot release in single-user mode
- 8ed079cad824 13.23 landed
- 32d388d00f9f 14.20 landed
- 818be9b73c94 15.15 landed
- fea1cc3f75ff 16.11 landed
- 07a302387176 17.7 landed
- ea1c6b0b0aec 18.0 landed
- 1f2e51e3c7c2 19 (unreleased) landed