Re: BUG #17973: Reinit of pgstats entry for dropped DB can break autovacuum daemon
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Jacob Speidel <jacob@extrahop.com>, Will Mortensen <will@extrahop.com>, pgsql-bugs@lists.postgresql.org
Date: 2023-09-01T03:31:09Z
Lists: pgsql-bugs
On Thu, Aug 31, 2023 at 07:56:13PM -0700, Nathan Bossart wrote: > On Fri, Sep 01, 2023 at 10:08:57AM +0900, Michael Paquier wrote: >> + /* >> + * Now that we rechecked, we are certain to be connected to a database and >> + * thus can set MyDatabaseId. >> + */ >> + MyDatabaseId = dboid; > > Perhaps we should expand this comment to make it clear that some code > depends on this to avoid races with concurrent database drops/renames. Yeah, this could be a bit more detailed, mentioning the dependency with the pgstat shutdown callback. How about appending the following sentence in a second paragraph, say: "Setting MyDatabaseId after rechecking the existence of the database matters for instance with the shutdown callback of the shared statistics, as pgstat_report_stat() will update database statistics depending on MyDatabaseId." -- Michael
Commits
-
Fix handling of shared statistics with dropped databases
- 5a9325fdde1d 15.5 landed
- c397c98ae63d 16.0 landed
- 2b8e5273e949 17.0 landed
-
Accept fractional seconds in jsonpath's datetime() method.
- bd590d1fea1b 15.4 cited