Received: from maia.hub.org (maia-5.hub.org [200.46.204.29]) by mail.postgresql.org (Postfix) with ESMTP id 1E740632629 for ; Mon, 16 Aug 2010 18:24:43 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.29]) (amavisd-maia, port 10024) with ESMTP id 56470-05 for ; Mon, 16 Aug 2010 21:24:35 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from spinlock.commandprompt.com (host-215.commandprompt.net [207.173.203.215]) by mail.postgresql.org (Postfix) with ESMTP id 9D2F763223B for ; Mon, 16 Aug 2010 18:24:35 -0300 (ADT) Received: from localhost (localhost [127.0.0.1]) by spinlock.commandprompt.com (Postfix) with ESMTP id 9EF72348037; Mon, 16 Aug 2010 14:24:28 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at commandprompt.com Received: from spinlock.commandprompt.com ([127.0.0.1]) by localhost (spinlock.commandprompt.com.commandprompt.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LpirM1kLCjkI; Mon, 16 Aug 2010 14:24:26 -0700 (PDT) Received: from perhan.alvh.no-ip.org (200-85-200-241.bk3-dsl.surnet.cl [200.85.200.241]) by spinlock.commandprompt.com (Postfix) with ESMTPSA id 23600348002; Mon, 16 Aug 2010 14:24:26 -0700 (PDT) Received: by perhan.alvh.no-ip.org (Postfix, from userid 1000) id 7F51D6E49A; Mon, 16 Aug 2010 17:24:23 -0400 (CLT) Content-Type: text/plain; charset=UTF-8 Cc: Joe Conway , Josh Berkus , PostgreSQL-development Subject: Re: Return of the Solaris vacuum polling problem -- anyone remember this? From: Alvaro Herrera To: Alvaro Herrera In-reply-to: <1281992147-sup-9595@alvh.no-ip.org> References: <4C69827A.409@agliodbs.com> <4C698CAD.2020001@joeconway.com> <4C698D88.6030201@agliodbs.com> <4C69A3D7.8020609@joeconway.com> <1281992147-sup-9595@alvh.no-ip.org> Date: Mon, 16 Aug 2010 17:24:23 -0400 Message-Id: <1281992840-sup-6951@alvh.no-ip.org> User-Agent: Sup/git Content-Transfer-Encoding: 8bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-1.9 tagged_above=-5 required=5 tests=BAYES_00=-1.9 X-Spam-Level: X-Archive-Number: 201008/1148 X-Sequence-Number: 167951 Excerpts from Alvaro Herrera's message of lun ago 16 16:58:31 -0400 2010: > I suspect that the problem may lie in the "cost_delay rebalance" code in > autovacuum. Hmm, so we have this code: void AutoVacuumUpdateDelay(void) { if (MyWorkerInfo) { VacuumCostDelay = MyWorkerInfo->wi_cost_delay; VacuumCostLimit = MyWorkerInfo->wi_cost_limit; } } where the MyWorkerInfo bits come from shared memory and can be modified by other autovac worker processes. We could read an incomplete value into our variables. But this only makes sense if an "int" variable can be subject to a partial read/write, which we already assume not to be so (c.f. GetNewTransactionId). In any case, if you happen to see this reoccur, could you please attach GDB to the misbehaving worker and see what VacuumCostDelay and VacuumCostLimit print out as? -- Álvaro Herrera The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support