Обсуждение: SIGALRM in autovacuum.c
Is this correct in autovacuum.c? pqsignal(SIGALRM, handle_sig_alarm); Should it be SIG_IGN? I don't see autovacuum using a timer or a reason it is calling the backend's timer routine. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian wrote: > Is this correct in autovacuum.c? > > pqsignal(SIGALRM, handle_sig_alarm); > > Should it be SIG_IGN? I don't see autovacuum using a timer or a reason > it is calling the backend's timer routine. FYI, the comment above this says: * Set up signal handlers. We operate on databases much like a regular * backend, so we use the same signal handling. See equivalent code in * tcop/postgres.c. but can you have autovacuum running as a regular backend? I didn't think so. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Is this correct in autovacuum.c? > pqsignal(SIGALRM, handle_sig_alarm); > Should it be SIG_IGN? Absolutely not. autovacuum takes locks just like a backend and has to be able to handle deadlock timeout checks. regards, tom lane