Re: invalid data in file backup_label problem on windows
David Steele <david@pgmasters.net>
From: David Steele <david@pgmasters.net>
To: "wangsh.fnst@fujitsu.com" <wangsh.fnst@fujitsu.com>
Cc: Michael Paquier <michael@paquier.xyz>,
"pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2021-03-19T13:05:56Z
Lists: pgsql-hackers
On 3/19/21 6:11 AM, wangsh.fnst@fujitsu.com wrote: > David Steele <david@pgmasters.net> wrote: > >> I'm not sure how I feel about this patch (not really a Windows person) >> but I do think that you shouldn't modify the backup_label when writing >> it, i.e. you should be writing backup_label in binary mode to avoid this >> issue. > > IMO, I don't modify backup_lable, I just execute select * FROM pg_stop_backup(), > copy the result from terminal to a file and save the file, but most of editor on > Windows will using CRLF as default to edit file, such as notepad, notepad++. It's not clear to me what text editors have to do with this? Are you editing the file manually? > BTW, in [1] >> The pg_stop_backup will return one row with three values. The second >> of these fields should be written to a file named backup_label in the root >> directory of the backup. The third field should be written to a file named >> tablespace_map unless the field is empty. These files are vital to the backup >> working, and must be written without modification. > > Do not use CRLF to edit a backup_label on windows is not mentioned. "These files are vital to the backup working, and must be written without modification" seems pretty clear to me. >> No objections from me if it gets committed but I'm not sure it should be >> classified as a "bug fix" since the backup_label was modified from what >> postgres provided, unless I am misunderstanding. > > I think the backup_label is not a postgres provided file(using Non-Exclusive Low Level API), > this file must be created by user. It is provided by postgres via pg_stop_backup(). It should be simply saved as-is to a file. > If users use Exclusive Low Level API or pg_basebakup, this file will be auto created, and > users will not edit this file. You keep saying "edit the file" but perhaps you mean "save the file"? Regards, -- -David david@pgmasters.net
Commits
-
doc: Clarify how to generate backup files with non-exclusive backups
- cc7416f3b679 9.6.22 landed
- 89bd8e8b3328 10.17 landed
- eb5e380a08a2 11.12 landed
- 677357047b9c 12.7 landed
- f8c2d491234f 13.3 landed
- 6fb66c268df2 14.0 landed