GIN pending clean up is not interruptable - Mailing list pgsql-hackers

From Jeff Janes
Subject GIN pending clean up is not interruptable
Date
Msg-id CAMkU=1wtAeZQCNtT6-b65y0gK=4FntYFssXmQ4=6DF_kZcj5ZQ@mail.gmail.com
Whole thread Raw
Responses Re: GIN pending clean up is not interruptable  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
When a user backend (as opposed to vacuum or autoanalyze) gets burdened with cleaning up the GIN pending list, it does not call CHECK_FOR_INTERRUPTS().

Since cleaning does a lot of random IO, it can take a long time and it is not nice to be uninterruptable.

The attached patch adds an else branch to call CHECK_FOR_INTERRUPTS().  

But I think we could instead just call vacuum_delay_point unconditionally.  It calls CHECK_FOR_INTERRUPTS(), and if not in a throttled vacuum it does nothing else.  (That is how ANALYZE handles it.)

This issue is in all branches.

Cheers,

Jeff
Attachment

pgsql-hackers by date:

Previous
From: Gideon Dresdner
Date:
Subject: can't coax query planner into using all columns of a gist index
Next
From: Robert Haas
Date:
Subject: Re: Foreign join pushdown vs EvalPlanQual