From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: AutoVacuum starvation from sinval messages |
Date: | 2012-11-08 22:12:07 |
Message-ID: | 20558.1352412727@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Jeff Janes <jeff(dot)janes(at)gmail(dot)com> writes:
> Basically the WaitLatch in autovacuum.c line 602 (in head) never returns.
> This was introduced by a180776f7a1c4554f214b, "Teach unix_latch.c to
> use poll() where available"
> When the poll() gets EINTR by SIGUSR1 for the invalidation, it
> restarts at the full timeout (60 seconds in this case) with no
> accounting for the time already waited.
Hmm. That seems like a problem, all right, but I don't believe the
claim that it applies only to the poll() code path. On many platforms
the select() path would have the same issue.
It's a bit annoying to have to incur an extra gettimeofday call per
WaitLatch operation in case this happens, but there doesn't seem to
be a lot of choice. I guess we can arrange to incur the extra call
only when a timeout is requested --- but IIRC that's going to be
the majority of usages anyway ...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2012-11-08 22:16:23 | Re: AutoVacuum starvation from sinval messages |
Previous Message | Jeff Janes | 2012-11-08 21:38:42 | Re: AutoVacuum starvation from sinval messages |