Received: from maia.hub.org (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 684D0634072 for ; Fri, 9 Oct 2009 14:49:46 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 30240-03 for ; Fri, 9 Oct 2009 17:49:37 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from exprod7og126.obsmtp.com (exprod7og126.obsmtp.com [64.18.2.206]) by mail.postgresql.org (Postfix) with SMTP id 0C0FF634A5B for ; Fri, 9 Oct 2009 14:49:36 -0300 (ADT) Received: from source ([209.85.218.226]) by exprod7ob126.postini.com ([64.18.6.12]) with SMTP ID DSNKSs93rbKly/H2E/TG5Mn7pXJKSrqxNHQ4@postini.com; Fri, 09 Oct 2009 10:49:37 PDT Received: by bwz26 with SMTP id 26so959361bwz.1 for ; Fri, 09 Oct 2009 10:49:32 -0700 (PDT) Received: by 10.103.78.31 with SMTP id f31mr1233077mul.24.1255110572659; Fri, 09 Oct 2009 10:49:32 -0700 (PDT) Received: from ?192.168.193.119? ([63.118.221.202]) by mx.google.com with ESMTPS id e8sm627789muf.59.2009.10.09.10.49.27 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 09 Oct 2009 10:49:29 -0700 (PDT) Message-ID: <4ACF77A5.1070706@enterprisedb.com> Date: Fri, 09 Oct 2009 13:49:25 -0400 From: Heikki Linnakangas Organization: EnterpriseDB User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090706) MIME-Version: 1.0 To: Simon Riggs CC: pgsql-hackers Subject: Re: Hot Standby on git References: <1253958559.4449.833.camel@ebony.2ndQuadrant> In-Reply-To: <1253958559.4449.833.camel@ebony.2ndQuadrant> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-6.599 tagged_above=-10 required=5 tests=BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4 X-Spam-Level: X-Archive-Number: 200910/623 X-Sequence-Number: 147435 While playing with conflict resolution, I bumped into this: postgres=# begin ISOLATION LEVEL SERIALIZABLE; BEGIN postgres=# SELECT * FROM foo; id | data ----+------ 12 | (1 row) postgres=# SELECT * FROM foo; id | data ----+------ 12 | (1 row) postgres=# SELECT * FROM foo; id | data ----+------ 12 | (1 row) postgres=# SELECT * FROM foo; id | data ----+------ 12 | (1 row) postgres=# SELECT * FROM foo; id | data ----+------ 12 | (1 row) postgres=# SELECT * FROM foo; ERROR: canceling statement due to conflict with recovery postgres=# SELECT * FROM foo; id | data ----+------ 13 | (1 row) postgres=# SELECT * FROM foo; id | data ----+------ 13 | (1 row) postgres=# begin ISOLATION LEVEL SERIALIZABLE; id | data ----+------ 13 | (1 row) postgres=# SELECT * FROM foo; BEGIN postgres=# SELECT * FROM foo; id | data ----+------ 13 | (1 row) The backend and the frontend seem to go out of sync, when a conflict happens in idle-in-transaction mode. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com