default_transaction_isolation = serializable causes crash under Hot Standby

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: default_transaction_isolation = serializable causes crash under Hot Standby
Date: 2012-04-27 13:15:16
Message-ID: CA+Tgmoa0UM2W1YkjjneEgJctzxopC3G53ocYPaCyoEOWT3aKiA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

When I do this:

rhaas=# set default_transaction_isolation = 'serializable';
SET
rhaas=# begin;
BEGIN
rhaas=# select 1;

Then I get this:

TRAP: FailedAssertion("!(!RecoveryInProgress())", File: "predicate.c",
Line: 1637)
LOG: server process (PID 290) was terminated by signal 6: Abort trap

The root of the problem here seems to be that we're imagining that
it's possible to prevent serializable mode from being used under HS
from within the check function for the transaction_isolation GUC - see
check_XactIsoLevel. However, because there's a second GUC
(default_transaction_isolation) that can also be used to change the
initial setting, it doesn't work.

I'm not exactly sure what the best way to fix this is. I assume that
this problem also exists in 9.1, but I haven't checked.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2012-04-27 13:25:47 Re: A problem with dump/restore of views containing whole row references
Previous Message Abbas Butt 2012-04-27 12:25:26 A problem with dump/restore of views containing whole row references