Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-hackers by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group