Re: Autovacuum launcher occurs error when cancelled by SIGINT
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Yugo Nagata <nagata@sraoss.co.jp>
Cc: PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Date: 2017-06-22T04:12:48Z
Lists: pgsql-hackers
On Wed, Jun 21, 2017 at 9:15 PM, Yugo Nagata <nagata@sraoss.co.jp> wrote: > This errors continue until this process is terminated or the server is restarted. > > When SIGINT is issued, the process exits from the main loop and returns > to sigsetjmp, and calls dsa_attach() before entering into the loop again, > this causes the error. > > We can fix it by calling dsa_attach() before sigsetjmp. Attached is the patch. Your fix looks like a bad idea to me. If the shared memory area does not exist after an exception occurred the process should be able to re-attach to the shared memory area if it exists or create a new one if that's not the case. That should not be a one-time execution. -- Michael
Commits
-
Fix autovacuum launcher attachment to its DSA
- a4f06606a328 10.0 landed