Avoid dangling shared memory pointers in parallel vacuum.

When a parallel vacuum failed, the leader's VacuumSharedCostBalance
and VacuumActiveNWorkers kept pointing into the parallel vacuum's DSM
segment, which is gone after the abort, until the next vacuum in the
same process reset them. Nothing in the current code reads them in the
meantime, but it's better not to leave them dangling. Reset them at
the end of vacuum(), as we already do at its start.

No backpatch, as this doesn't fix any live problem.

Author: Bharath Rupireddy <[email protected]>
Reviewed-by: Masahiko Sawada <[email protected]>
Discussion: 
https://postgr.es/m/calj2acw3oy7ex-2-aits7yhrcih20r12dhccnf+exuwer1f...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e0b995e5b23116450646fd1004db4bdcdbe213e4

Modified Files
--------------
src/backend/commands/vacuum.c | 3 +++
1 file changed, 3 insertions(+)

Reply via email to