Re: amcheck/verify_heapam doesn't check for interrupts - Mailing list pgsql-hackers

From Mark Dilger
Subject Re: amcheck/verify_heapam doesn't check for interrupts
Date
Msg-id 7433F43F-B8AE-494E-9C4F-7A024265EE36@enterprisedb.com
Whole thread Raw
In response to amcheck/verify_heapam doesn't check for interrupts  (Peter Geoghegan <pg@bowt.ie>)
Responses Re: amcheck/verify_heapam doesn't check for interrupts  (Peter Geoghegan <pg@bowt.ie>)
List pgsql-hackers

> On Aug 26, 2021, at 2:38 PM, Peter Geoghegan <pg@bowt.ie> wrote:
>
> It looks like we neglect to call CHECK_FOR_INTERRUPTS() anywhere
> inside verify_heapam.c. Is there any reason for this?

Not any good one that I can see.

> Can't we just
> put a CHECK_FOR_INTERRUPTS() at the top of the outermost loop, inside
> verify_heapam()?

I expect we could.

> Not sure if pg_amcheck itself is a factor here too -- didn't get that far.

That runs an event loop in the client over multiple checks (heap and/or btree) running in backends, just as reindexdb
andvacuumdb do over parallel reindexes and vacuums running in backends.  It should be just as safe to ctrl-c out of
pg_amcheckas out of those two.  They all three use fe_utils/cancel.h's setup_cancel_handler(), so I would expect
modifyingverify_heapam would be enough. 

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company






pgsql-hackers by date:

Previous
From: Jaime Casanova
Date:
Subject: CFM for september commitfest
Next
From: Michael Paquier
Date:
Subject: Re: [PATCH] Disable bgworkers during servers start in pg_upgrade