On Wed, Oct 28, 2020 at 04:11:56PM +0900, Michael Paquier wrote: > Thanks. The patch for v13 cannot use a macro, but one of the versions > of upthread would do just fine. I have been wondering about using the > new CheckBuffer() for the purpose of the retry to make it > concurrent-safe, but by looking at the code I think that we would run > unto problems when trying to open through smgr.c any relation file in > global/ as these require an invalid backend ID, and a WAL sender does > not satisfy that (see the assertion in GetRelationPath()).
Actually, scratch that.. It looks like I am wrong here. By using smgropen() with InvalidBackendId and a RelFileNode built using the path of the file being sent, similarly to what pg_rewind is doing in isRelDataFile(), we should have everything that's needed. This is too complicated for a backpatch and we should have some consolidation with pg_rewind, so using the sleep/retry for v13 sounds like a safer path to take in the stable branch. -- Michael
signature.asc
Description: PGP signature