Re: Somebody has broken autovacuum's abort path

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Somebody has broken autovacuum's abort path
Date: 2010-01-05 22:07:34
Message-ID: 1262729254.19367.54487.camel@ebony
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, 2010-01-05 at 03:09 -0500, Tom Lane wrote:
> http://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=jaguar&dt=2010-01-05%2004:00:03
> (and the same a couple times before this...)
>
> Core was generated by `postgres: autovacuum worker process regression '.
> Program terminated with signal 6, Aborted.
> [New process 9209]
> #0 0x0091c402 in __kernel_vsyscall ()
> #0 0x0091c402 in __kernel_vsyscall ()
> #1 0x007a9d80 in raise () from /lib/libc.so.6
> #2 0x007ab691 in abort () from /lib/libc.so.6
> #3 0x083393be in ExceptionalCondition (
> conditionName=0x8498e40 "!(rel->rd_refcnt > 0)",
> errorType=0x836d218 "FailedAssertion", fileName=0x8498d55 "relcache.c",
> lineNumber=1612) at assert.c:57
> #4 0x083324c2 in RelationDecrementReferenceCount (rel=0xb5c641e0)
> at relcache.c:1612
> #5 0x0835b562 in ResourceOwnerReleaseInternal (owner=0x92d1058,
> phase=RESOURCE_RELEASE_BEFORE_LOCKS, isCommit=0 '\0', isTopLevel=1 '\001')
> at resowner.c:251
> #6 0x0835b86f in ResourceOwnerRelease (owner=0x92d1058,
> phase=RESOURCE_RELEASE_BEFORE_LOCKS, isCommit=0 '\0', isTopLevel=1 '\001')
> at resowner.c:185
> #7 0x080cc5d9 in AbortTransaction () at xact.c:2179
> #8 0x080cc7c7 in AbortOutOfAnyTransaction () at xact.c:3676
> #9 0x0824063e in do_autovacuum () at autovacuum.c:2259
> #10 0x08240b25 in AutoVacWorkerMain (argc=<value optimized out>,
> argv=<value optimized out>) at autovacuum.c:1602
> #11 0x08240c51 in StartAutoVacWorker () at autovacuum.c:1406
> #12 0x0824c0f5 in sigusr1_handler (postgres_signal_arg=10)

> I think this can likely be blamed on the HS changes in transaction
> abort, since I'm not aware of any other recent changes near here.

I haven't knowingly made changes to this code path, nor were there
changes to transaction abort in HS. xact_redo_abort() was changed, but
that's not what's failing.

http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xact.c?r1=1.277&r2=1.278

--
Simon Riggs www.2ndQuadrant.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tim Bunce 2010-01-05 22:31:19 Re: Status of plperl inter-sp calling
Previous Message Josh Berkus 2010-01-05 21:58:37 Re: Writeable CTEs