From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
Cc: | Dilip Kumar <dilipbalaut(at)gmail(dot)com>, hlinnaka <hlinnaka(at)iki(dot)fi>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Race condition in recovery? |
Date: | 2021-06-07 19:02:12 |
Message-ID: | CA+TgmoZwJ72s6zwv-wAQrLfRbj5Fvn+H+046mqV=VozKcvWS+w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I tried back-porting my version of this patch to 9.6 to see what would
happen there. One problem is that some of the functions have different
names before v10. So 9.6 needs this:
- "SELECT pg_walfile_name(pg_current_wal_lsn());");
+ "SELECT pg_xlogfile_name(pg_current_xlog_location());");
But there's also another problem, which is that this doesn't work before v12:
$node_standby->psql('postgres', 'SELECT pg_promote()');
So I tried changing it to this:
$node_standby->promote;
But then the test fails, because pg_promote() has logic built into it
to wait until the promotion actually happens, but ->promote doesn't,
so SELECT pg_walfile_name(pg_current_wal_lsn()) errors out because the
system is still in recovery. I'm not sure what to do about that. I
quickly tried adding -w to 'sub promote' in PostgresNode.pm, but that
didn't fix it, so I guess we'll have to find some other way to wait
until the promotion is complete.
--
Robert Haas
EDB: http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-06-07 19:24:33 | Re: SQL-standard function body |
Previous Message | Tom Lane | 2021-06-07 18:56:57 | Re: Make unlogged table resets detectable |