Re: standby recovery fails (tablespace related) (tentative patch and discussion)

Kyotaro Horiguchi <horikyota.ntt@gmail.com>

From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: michael@paquier.xyz
Cc: daniel@yesql.se, guopa@vmware.com, tgl@sss.pgh.pa.us, robertmhaas@gmail.com, ibrar.ahmad@gmail.com, alvherre@2ndquadrant.com, masao.fujii@oss.nttdata.com, a.lubennikova@postgrespro.ru, pasim@vmware.com, thomas.munro@gmail.com, horiguchi.kyotaro@lab.ntt.co.jp, pgsql-hackers@postgresql.org
Date: 2021-11-10T08:14:11Z
Lists: pgsql-hackers
At Tue, 09 Nov 2021 17:05:49 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in 
> At Tue, 9 Nov 2021 12:51:15 +0900, Michael Paquier <michael@paquier.xyz> wrote in 
> > Look at Utils.pm where we have dir_symlink, then.  symlink() does not
> > work on WIN32, so we have a wrapper that uses junction points.  FWIW,
> > I don't like much the behavior you are enforcing in init_from_backup
> > when coldly copying a source path, but I have not looked enough at the
> > patch set to have a strong opinion about this part, either.
> 
> Thanks for the info. If we can handle symlink on Windows, we don't
> need to have a cold copy.

I bumped into the good-old 100-byte limit of the (v7?) tar format on
which pg_basebackup is depending. It is unlikely in the real world but
I think it is quite common in developping environment.  The tablespace
directory path in my dev environment was 110 chacters-long.  As small
as 10 bytes but it's quite annoying to chip off that number of bytes
from the path..

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Commits

  1. Improve recently-added test reliability

  2. Fix new recovery test for log_error_verbosity=verbose case

  3. Fix test instability

  4. Fix replay of create database records on standby

  5. Allow "in place" tablespaces.

  6. Fix get_dirent_type() for Windows junction points.

  7. Revert "Fix replay of create database records on standby"

  8. Add end-to-end testing of pg_basebackup's tar-format output.

  9. Make DROP DATABASE command generate less WAL records.

  10. Consolidate methods for translating a Perl path to a Windows path.