Re: BUG #17973: Reinit of pgstats entry for dropped DB can break autovacuum daemon

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Andres Freund <andres@anarazel.de>, Jacob Speidel <jacob@extrahop.com>, Will Mortensen <will@extrahop.com>, pgsql-bugs@lists.postgresql.org
Date: 2023-09-02T15:21:34Z
Lists: pgsql-bugs
On Sat, Sep 02, 2023 at 09:08:22AM +0900, Michael Paquier wrote:
> On Fri, Sep 01, 2023 at 08:20:24AM -0700, Nathan Bossart wrote:
>> Something along those lines seems fine to me.  FWIW this is what I had in
>> my head:
>> 
>> 	It is important that MyDatabaseId only be set once we are sure that the
>> 	target database can no longer be concurrently dropped or renamed.  Some
>> 	code depends on this.  For example, without this guarantee,
>> 	pgstat_update_dbstats() could create entries for databases that were
>> 	just dropped, which will lead to problems down the road.
> 
> I'm mostly OK with this formulation as well, but without the second
> sentence and adding as extra that pgstat_update_dbstats() could be
> specifically called in the shutdown callback of the shared statistics.

WFM

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



Commits

  1. Fix handling of shared statistics with dropped databases

  2. Accept fractional seconds in jsonpath's datetime() method.