Re: pg_rewind fails on Windows where tablespaces are used
Chris Travers <chris.travers@stormatics.tech>
From: Chris Travers <chris.travers@stormatics.tech>
To: Michael Paquier <michael@paquier.xyz>
Cc: Andrew Dunstan <andrew@dunslane.net>,
Farooq Rashed <farooq.rashed@desc.gov.ae>, pgsql-bugs@lists.postgresql.org
Date: 2024-07-11T01:20:30Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix readlink() for non-PostgreSQL junction points on Windows.
- 2c4a532c96a9 13.19 landed
- f4fd5325cc87 14.16 landed
- 9b136b0f2e53 15.11 landed
-
Fix stat() for recursive junction points on Windows.
- fbf8efbda88c 13.19 landed
- 9f1c67488e59 14.16 landed
- e708f31881fd 15.11 landed
-
Fix pg_rewind with in-place tablespaces when source is remote
- bf227926d22b 17.0 cited
-
Make unlink() work for junction points on Windows.
- f357233c9db8 16.0 cited
-
Use in-place tablespaces in regression test.
- d6d317dbf615 15.0 cited
Sorry for the late reply. I had apparently had it buried. On Wed, Jul 10, 2024 at 6:12 AM Michael Paquier <michael@paquier.xyz> wrote: > On Tue, Jul 09, 2024 at 12:01:17PM -0400, Andrew Dunstan wrote: > > The solution I came up with was to backpatch commits c5cb8f3b, 387803d8 > and > > 5fc88c5d53. > > The lstat() wrapper for Windows, noted. > > > I don't think we need to do anything relating to in-place tablespaces. > These > > are documented as a developer only option and not for production. > > Okay, cool. > > Yeah in place tablespaces are not used. They did have to be briefly enbaled due to another issue probably with the same wrapper but they were never used. They were disabled again shortly after. > > The only question in my mind is whether those patches should be > > backpatched. > > > > It's a couple of hundred lines, and I think it's safe, but I'd welcome > other > > opinions. If we are going to backpatch them we should also look at > adding to > > adding tests for use of tablespaces with pg_rewind on the back branches. > > Ideally we'd get this done in time for the next maintenance release. > > Seeing that the commits all go down to v16, meaning that these have > brewed across 3 minor releases already, I'd like to assume that we > would have already heard about problems related to them. So that > seems like a rather safe thing to do at this stage. > Just as some added context, I have noticed that manually moving a tablespace and creating the junction with mklink /d sometimes causes PostgreSQL to decide this must be an in place tablespace even though dir clearly shows it as a junction. I don't have the resources to determine if this is limited to some builds of Windows or patch levels but the problem goes away after a pg_basebackup rebuild so I don;t think it is something that is so urgent, So this is more of a note that there seem to be some issues in this area on Windows at least in 15. I don't know if that affects discussion but it is worth noting. Michael >