BUG in pg_autovacuum - with patch - Mailing list pgsql-bugs

From Karl Denninger
Subject BUG in pg_autovacuum - with patch
Date
Msg-id 20050401211440.A44161@denninger.net
Whole thread Raw
Responses Re: BUG in pg_autovacuum - with patch
List pgsql-bugs
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 (karl@denninger.net) 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

pgsql-bugs by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: Segfault in 8.0.2beta1
Next
From: Juan Pablo Espino
Date:
Subject: pg_restore - Windows 2000