At Fri, 04 Mar 2022 16:54:49 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in
> At Fri, 04 Mar 2022 16:41:03 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in
> > At Fri, 4 Mar 2022 15:44:22 +0900, Michael Paquier <michael@paquier.xyz> wrote in
> > > The use may be limited to any automated testing and
> > > allow_in_place_tablespaces is a developer GUC, still it seems to me
> > > that there is an argument to allow the case rather than tweak any
> > > tests to hardcode a path with the tablespace OID. And any other code
> > > paths are able to handle such tablespaces, be they in recovery or in
> > > tablespace create/drop.
> >
> > +1
>
> By the way, regardless of the patch, I got an error from pg_basebackup
> for an in-place tablespace. pg_do_start_backup calls readlink
> believing pg_tblspc/* is always a symlink.
>
> # Running: pg_basebackup -D
/home/horiguti/work/worktrees/tsp_replay_2/src/test/recovery/tmp_check/t_029_replay_tsp_drops_primary1_data/backup/my_backup
-h/tmp/X8E4nbF4en -p 51584 --checkpoint fast --no-sync
> WARNING: could not read symbolic link "pg_tblspc/16384": Invalid argument
So now we know that there are three places that needs the same
processing.
pg_tablespace_location: this patch tries to fix
sendDir: it already supports in-place tsp
do_pg_start_backup: not supports in-place tsp yet.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center