Re: AutoVacuum starvation from sinval messages - Mailing list pgsql-hackers

From Tom Lane
Subject Re: AutoVacuum starvation from sinval messages
Date
Msg-id 20558.1352412727@sss.pgh.pa.us
Whole thread Raw
In response to AutoVacuum starvation from sinval messages  (Jeff Janes <jeff.janes@gmail.com>)
Responses Re: AutoVacuum starvation from sinval messages  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Jeff Janes <jeff.janes@gmail.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



pgsql-hackers by date:

Previous
From: Jeff Janes
Date:
Subject: Re: AutoVacuum starvation from sinval messages
Next
From: Tom Lane
Date:
Subject: Re: AutoVacuum starvation from sinval messages