Re: autovacuum running for a long time on a new table with 1 row

From: Lonni J Friedman <netllama(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: autovacuum running for a long time on a new table with 1 row
Date: 2012-06-01 17:44:32
Message-ID: CAP=oouH8rJ+=WcsK_audc_ddR4eV8KspQ7wx3mDHug16kApKOw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, Jun 1, 2012 at 10:34 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Lonni J Friedman <netllama(at)gmail(dot)com> 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.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2012-06-01 17:54:00 Re: autovacuum running for a long time on a new table with 1 row
Previous Message Tom Lane 2012-06-01 17:34:39 Re: autovacuum running for a long time on a new table with 1 row