On Sat, 2007-10-27 at 23:22 +0100, Simon Riggs wrote: > On Fri, 2007-10-26 at 10:32 +0100, Heikki Linnakangas wrote: > > Alvaro Herrera wrote: > > > /* > > > * Look for a blocking autovacuum. There will only ever > > > * be one, since the autovacuum workers are careful > > > * not to operate concurrently on the same table. > > > */ > > > > I think that's a bit unaccurate. You could have multiple autovacuum > > workers operating on different tables participating in a deadlock. The > > reason that can't happen is that autovacuum never holds a lock while > > waiting for another. > > I wrote that code comment; as you say it is true only when there are at > least 4 processes in the lock graph where 2+ normal backends are > deadlocking and there are 2+ autovacuums holding existing locks. The > comment should have said "If blocking is caused by an autovacuum process > then ... (there will)".
Sorry...this should read "as you say it is **not** true". -- Simon Riggs 2ndQuadrant http://www.2ndQuadrant.com ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq