> -----Original Message----- > From: Tom Lane [mailto:tgl@xxxxxxxxxxxxx] > Sent: Saturday, January 17, 2009 9:50 AM > To: Alvaro Herrera > Cc: Justin Pasher; pgsql-general@xxxxxxxxxxxxxx > Subject: Re: Autovacuum daemon terminated by signal 11 > > Alvaro Herrera <alvherre@xxxxxxxxxxxxxxxxx> writes: > > Hmm, in retrospect this is pretty obviously buggy. I can't say that > > it's that easy for me to reproduce it though; I definitely can't make it > > crash. Maybe by sheer luck, the new TopTransactionContext pointer > > points to the same memory area that the old was stored in. > > Yeah, there could be some platform dependency involved. I'm guessing > different structs that happen to fall into the same palloc size category > on one platform but not another. > > Anyway, it happens consistently on my HP box. I find that your proposed > patch fixes it, but makes the "normal" path crash :-( --- the loop in > do_autovacuum has to be executed in AutovacMemCxt, because it creates an > Oid List that gets passed to vacuum() and had better not be in a > transaction-lifetime context. The attached modified patch works for me. > > regards, tom lane I tried both Alvaro's patch and your patch, and I actually got the same results from both. I didn't experience a crash when autovacuum kicked in or when manually performing a vacuum on the database (if that's what you meant by the "normal path"). At any rate, everything seems to be working properly for me with the patch. Thanks! Justin Pasher -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general