Re: amcheck/verify_heapam doesn't check for interrupts
Mark Dilger <mark.dilger@enterprisedb.com>
From: Mark Dilger <mark.dilger@enterprisedb.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Robert Haas <robertmhaas@gmail.com>
Date: 2021-08-26T23:24:08Z
Lists: 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 and vacuumdb do over parallel reindexes and vacuums running in backends. It should be just as safe to ctrl-c out of pg_amcheck as out of those two. They all three use fe_utils/cancel.h's setup_cancel_handler(), so I would expect modifying verify_heapam would be enough. — Mark Dilger EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
contrib/amcheck: Add heapam CHECK_FOR_INTERRUPTS().
- 191dce109be3 15.0 landed
- ba05dfe94304 14.0 landed