Hi folks.

There's a problem in the console detach code for pg_autovacuum.

"setsid()" is NOT sufficient.  Specifically, you must disassociate the
control terminal (standard in, out and error) for it to be complete.

This causes any attempt to execute pg_autovacuum from the cron to hang the
cron processor, stalling it.

Find below a diff that fixes the problem and allows proper disassociation:


*** pg_autovacuum.c.old Fri Apr  1 21:13:22 2005
--- pg_autovacuum.c     Fri Apr  1 20:55:41 2005
***************
*** 196,201 ****
--- 196,202 ----
  daemonize(void)
  {
        pid_t           pid;
+       int             i;
  
        pid = fork();
        if (pid == (pid_t) -1)
***************
*** 219,224 ****
--- 220,230 ----
                fflush(LOGOUTPUT);
                _exit(1);
        }
+       i = open(NULL_DEV, O_RDWR);
+         dup2(i, 0);
+         dup2(i, 1);
+         dup2(i, 2);
+         close(i);
  #endif
  
  }


--
-- 
Karl Denninger ([EMAIL PROTECTED]) Internet Consultant & Kids Rights Activist
http://www.denninger.net        My home on the net - links to everything I do!
http://scubaforum.org           Your UNCENSORED place to talk about DIVING!
http://www.spamcuda.net         SPAM FREE mailboxes - FREE FOR A LIMITED TIME!
http://genesis3.blogspot.com    Musings Of A Sentient Mind



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to