Just an update on this issue:
I've been able to reproduce the crash (thanks for the test case!) and
obtain the crash information here on my 32-bit windows 7 install, so
there's no need for you to do anything else so far.
I still can't get a usable backtrace. The autovacuum workers/launcher
split makes it *really* hard to catch an autovacuum worker in action.
The post-mortem debugger won't trigger for service processes, so I can't
trap it that way, and I can't pre-attach a debugger to it.
OTOH, it's now pretty clearly autovacuum that's dying, as Tom Lane
suggested it probably would be.
debug5 logging shows:
2010-10-04 18:18:54 WST 3692 DEBUG: InitPostgres
2010-10-04 18:18:54 WST 3692 DEBUG: my backend id is 3
2010-10-04 18:18:54 WST 3692 DEBUG: StartTransaction
2010-10-04 18:18:54 WST 3692 DEBUG: name: unnamed; blockState: DEFAULT;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2010-10-04 18:18:54 WST 3692 DEBUG: mapped win32 error code 2 to 2
2010-10-04 18:18:54 WST 3692 DEBUG: CommitTransaction
2010-10-04 18:18:54 WST 3692 DEBUG: name: unnamed; blockState: STARTED;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2010-10-04 18:18:54 WST 3692 DEBUG: autovacuum: processing database "test"
2010-10-04 18:18:54 WST 3692 DEBUG: StartTransaction
2010-10-04 18:18:54 WST 3692 DEBUG: name: unnamed; blockState: DEFAULT;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2010-10-04 18:18:54 WST 3692 DEBUG: pg_statistic: vac: 0 (threshold 118), anl:
0 (threshold 84)
... followed by lots more startup messages, a series of transactions, then:
2010-10-04 18:18:55 WST 3692 DEBUG: name: unnamed; blockState: STARTED;
state: INPROGR, xid/subid/cid: 159661/1/0 (used), nestlvl: 1, children:
2010-10-04 18:18:55 WST 3692 DEBUG: StartTransaction
2010-10-04 18:18:55 WST 3692 DEBUG: name: unnamed; blockState: DEFAULT;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2010-10-04 18:18:55 WST 3692 DEBUG: poslist: vac: 0 (threshold 50), anl: 1804
(threshold 50)
2010-10-04 18:18:55 WST 3692 DEBUG: autovac_balance_cost(pid=3692 db=98315,
rel=98390, cost_limit=200, cost_delay=20)
2010-10-04 18:18:55 WST 3692 DEBUG: CommitTransaction
2010-10-04 18:18:55 WST 3692 DEBUG: name: unnamed; blockState: STARTED;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2010-10-04 18:18:55 WST 3692 DEBUG: StartTransaction
2010-10-04 18:18:55 WST 3692 DEBUG: name: unnamed; blockState: DEFAULT;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2010-10-04 18:18:55 WST 3692 DEBUG: analyzing "public.poslist"
2010-10-04 18:18:55 WST 2408 DEBUG: server process (PID 3692) was terminated
by exception 0xC0000005
2010-10-04 18:18:55 WST 2408 LOG: server process (PID 3692) was terminated by
exception 0xC0000005
Autovacuum usually dies after:
analyzing "public.suolo" (three times)
but I've also seen it die after:
analyzing "public.poslist"
as shown above.
I'm really struggling to get a debugger attached to the *...@#$@#...@$* thing
though. Ideas?
*punting to PostGIS folks for a look*
--
Craig Ringer
Tech-related writing at http://soapyfrogs.blogspot.com/
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs