Re: standby recovery fails (tablespace related) (tentative patch and discussion)
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Paul Guo <guopa@vmware.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Robert Haas <robertmhaas@gmail.com>,
Ibrar Ahmed <ibrar.ahmad@gmail.com>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
Fujii Masao <masao.fujii@oss.nttdata.com>,
Anastasia Lubennikova <a.lubennikova@postgrespro.ru>,
Asim Praveen <pasim@vmware.com>,
"thomas.munro@gmail.com" <thomas.munro@gmail.com>,
"horiguchi.kyotaro@lab.ntt.co.jp" <horiguchi.kyotaro@lab.ntt.co.jp>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2021-11-04T12:34:33Z
Lists: pgsql-hackers
> On 24 Sep 2021, at 20:14, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Robert Haas <robertmhaas@gmail.com> writes: >> The commit message for 0001 is not clear enough for me to understand >> what problem it's supposed to be fixing. The code comments aren't >> really either. They make it sound like there's some problem with >> copying symlinks but mostly they just talk about callbacks, which >> doesn't really help me understand what problem we'd have if we just >> didn't commit this (or reverted it later). > >> I am not really convinced by Álvaro's claim that 0004 is a "fix"; I >> think I'd call it an improvement. But either way I agree that could >> just be committed. > >> I haven't analyzed 0002 and 0003 yet. > > I took a quick look through this: > > * I don't like 0001 either, though it seems like the issue is mostly > documentation. sub _srcsymlink should have a comment explaining > what it's doing and why. The documentation of copypath's new parameter > seems like gobbledegook too --- I suppose it should read more like > "By default, copypath fails if a source item is a symlink. But if > B<srcsymlinkfn> is provided, that subroutine is called to process any > symlink." > > * I'm allergic to 0002's completely undocumented changes to > poll_query_until, especially since I don't see anything in the > patch that actually uses them. Can't we just drop these diffs > in PostgresNode.pm? BTW, the last error message in the patch, > talking about a 5-second timeout, seems wrong. With or without > these changes, poll_query_until's default timeout is 180 sec. > The actual test case might be okay other than that nit and a > comment typo or two. > > * 0003 might actually be okay. I've not read it line-by-line, > but it seems like it's implementing a sane solution and it's > adequately commented. > > * I'm inclined to reject 0004 out of hand, because I don't > agree with what it's doing. The purpose of the rmgrdesc > functions is to show you what is in the WAL records, and > everywhere else we interpret that as "show the verbatim, > numeric field contents". heapdesc.c, for example, doesn't > attempt to look up the name of the table being operated on. > 0004 isn't adhering to that style, and aside from being > inconsistent I'm afraid that it's adding failure modes > we don't want. This patch again fails to apply (seemingly from the Perl namespace work on the testcode), and needs a few updates as per the above review. -- Daniel Gustafsson https://vmware.com/
Commits
-
Improve recently-added test reliability
- ad0e08394746 10.22 landed
- 9d5c96d9be64 14.5 landed
- 8c5d9ccca967 13.8 landed
- 782e5631e5dd 12.12 landed
- 772e6383d1da 11.17 landed
- 6c1c9f88ad54 16.0 landed
- 6390bc740f90 15.0 landed
-
Fix new recovery test for log_error_verbosity=verbose case
- b998196bb59a 16.0 cited
-
Fix test instability
- fcd72cf295c3 11.17 landed
- 7cfe688dee86 13.8 landed
- 798d64488ca9 15.0 landed
- 6ffaf75a8001 10.22 landed
- 658e5d53459f 12.12 landed
- 59be1c942a47 16.0 landed
- 4d8d85740c02 14.5 landed
-
Fix replay of create database records on standby
- 9e4f914b5eba 16.0 landed
- a3aacb7cbfc7 14.5 landed
- 9a7e26b9c2ac 13.8 landed
- 8348413dbded 15.0 landed
- 6d20f8c5a46a 12.12 landed
- 5a10c262fc60 11.17 landed
- 084318c33a1f 10.22 landed
- ffd28516e699 14.3 landed
- 50e3ed8e9172 13.7 landed
- 49d9cfc68bf4 15.0 landed
-
Allow "in place" tablespaces.
- 961cab0a5a90 14.5 landed
- 16e7a8fd8e97 13.8 landed
- ca347f5433ed 12.12 landed
- 7bdbbb87340f 10.22 landed
- 258c896418bf 11.17 landed
-
Fix get_dirent_type() for Windows junction points.
- fee0165fc1cf 14.5 landed
- 6d306ab73168 15.0 landed
- 9d3444dcce4d 16.0 landed
-
Revert "Fix replay of create database records on standby"
- bf902c13930c 15.0 landed
- adc943b4e1fe 14.3 landed
- a54ed2de80ec 13.7 landed
-
Add end-to-end testing of pg_basebackup's tar-format output.
- 081876d75ea1 14.0 cited
-
Make DROP DATABASE command generate less WAL records.
- e6d8069522c8 13.0 cited
-
Consolidate methods for translating a Perl path to a Windows path.
- 660a2b19038b 12.0 cited