Fix incorrect ordering of operations in pg_resetwal and pg_rewind.
Tom Lane <tgl@sss.pgh.pa.us>
Fix incorrect ordering of operations in pg_resetwal and pg_rewind. Commit c37b3d08c dropped its added GetDataDirectoryCreatePerm call into the wrong place in pg_resetwal.c, namely after the chdir to DataDir. That broke invocations using a relative path, as reported by Tushar Ahuja. We could have left it where it was and changed the argument to be ".", but that'd result in a rather confusing error message in event of a failure, so re-ordering seems like a better solution. Similarly reorder operations in pg_rewind.c. The issue there is that it doesn't seem like a good idea to do any actual operations before the not-root check (on Unix) or the restricted token acquisition (on Windows). I don't know that this is an actual bug, but I'm definitely not convinced that it isn't, either. Assorted other code review for c37b3d08c and da9b580d8: fix some misspelled or otherwise badly worded comments, put the #include for <sys/stat.h> where it actually belongs, etc. Discussion: https://postgr.es/m/aeb9c3a7-3c3f-a57f-1a18-c8d4fcdc2a1f@enterprisedb.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/storage/file/fd.c | modified | +4 −4 |
| src/backend/utils/init/globals.c | modified | +1 −3 |
| src/bin/pg_resetwal/pg_resetwal.c | modified | +7 −7 |
| src/bin/pg_rewind/pg_rewind.c | modified | +10 −10 |
| src/common/file_perm.c | modified | +1 −2 |
| src/include/common/file_perm.h | modified | +3 −1 |
Discussion
- -D option of pg_resetwal is only works with absolute path 6 messages · 2018-05-23