Hi,
On 2022-08-04 18:05:25 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > Yea. I think at the very least we need to start holding interrupts before the
> > DropDatabaseBuffers() and do so until commit. That's probably best done by
> > doing the transaction commit inside dropdb.
>
> We've talked before about ignoring interrupts across commit, but
> I find the idea a bit scary.
I'm not actually suggesting to do so across commit, just until the
commit. Maintaining that seems easiest if dropdb() does the commit internally.
> In any case, DROP DATABASE is far from the only place with a problem.
What other place has a database corrupting potential of this magnitude just
because interrupts are accepted? We throw valid s_b contents away and then
accept interrupts before committing - with predictable results. We also accept
interrupts as part of deleting the db data dir (due to catalog access).
Greetings,
Andres Freund