From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Boszormenyi Zoltan <zb(at)cybertec(dot)at> |
Cc: | Marc Cousin <cousinmarc(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Hans-Juergen Schoenig <hs(at)cybertec(dot)at>, Ants Aasma <ants(at)cybertec(dot)at>, Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Subject: | Re: [PATCH] lock_timeout and common SIGALRM framework |
Date: | 2012-07-04 15:20:48 |
Message-ID: | 1341415105-sup-6185@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Excerpts from Boszormenyi Zoltan's message of mié jul 04 06:32:46 -0400 2012:
> 2012-07-04 12:09 keltezéssel, Boszormenyi Zoltan írta:
> > You just broke initdb with this cleanup. :-)
Ouch.
> > initdb starts postgres --single, that doesn't do BackendInitialize(),
> > only PostgresMain(). So, you need InitializeTimeouts() before
> > the RegisterTimeout() calls in PostgresMain and the elog(PANIC)
> > must not be in InitializeTimeouts() if called twice.
>
> Attached is the fix for this problem. PostgresMain() has a new
> argument: bool single_user. This way, InitializeTimeouts() can
> keep its elog(PANIC) if called twice and "postgres --single"
> doesn't fail its Assert() in RegisterTimeout().
Hmm. Maybe it's better to leave InitializeTimeouts to be called twice
after all. The fix seems a lot uglier than the disease it's curing.
--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2012-07-04 15:25:28 | Re: [PATCH] lock_timeout and common SIGALRM framework |
Previous Message | Magnus Hagander | 2012-07-04 15:17:52 | Re: pgfoundry references in docs |