On Fri, Jun 1, 2012 at 10:34 AM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > Lonni J Friedman <netllama@xxxxxxxxx> writes: >> Running 9.1.3 on Linux-x86_64. I'm seeing autovacuum running for the >> past 6 hours on a newly created table that only has 1 row of data in >> it. This table did exist previously, but was dropped & recreated. >> I'm not sure if that might explain this behavior. When I strace the >> autovacuum process, I see the following scrolling by non-stop (with no >> changes to the file referenced): >> select(0, NULL, NULL, NULL, {0, 21000}) = 0 (Timeout) >> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory) >> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory) >> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory) >> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory) >> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory) >> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory) > > This seems to have been noticed and fixed in HEAD: > http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=b4e0741727685443657b55932da0c06f028fbc00 > I wonder whether that should've been back-patched. Thanks for your reply. I won't even pretend to understand what that fix does. Is this behavior something that is blatantly broken, or harmless, or somewhere in between? Should I expect autovacuum to eventually complete succesfully when it stumbles into this scenario? > > In the meantime, though, it sure looks like you've got a lot more than > one row in there. Perhaps you did umpteen zillion updates on that one > row? Before dropping & recreating the table, yes it had millions of rows, and millions of updates. But since then, all I did was insert a single row, and watched autovacuum wedge itself in that seemingly infinite loop. I ended up doing a 'kill -2' on the autovacuum PID that was misbehaving, disabled autovacuuming the table, and went about what I needed to get done as an interim solution. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general