Re: default_isolation_level='serializable' crashes on Windows

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Kevin Grittner <kevin(dot)grittner(at)wicourts(dot)gov>
Subject: Re: default_isolation_level='serializable' crashes on Windows
Date: 2012-08-12 14:39:23
Message-ID: 2397.1344782363@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> writes:
> The problem is that when a postmaster subprocess is launched, it calls
> read_nondefault_variables() very early, before shmem initialization, to
> read the non-default config options from the file that postmaster wrote.
> When check_XactIsoLevel() calls RecoveryInProgress(), it crashes,
> because XLogCtl is NULL.

Hm, how did the same code fail to crash in the postmaster itself, when
the postmaster read the setting from postgresql.conf?

A larger point is that I think it's broken for any GUC assignment
function to be calling something as transient as RecoveryInProgress to
start with. We probably ought to re-think the logic, not just band-aid
this by having it skip the check when shmem isn't initialized yet.
I'm thinking that the check has to occur somewhere outside GUC.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2012-08-12 21:11:51 Re: Statistics and selectivity estimation for ranges
Previous Message Heikki Linnakangas 2012-08-12 10:04:29 default_isolation_level='serializable' crashes on Windows