RE: invalid data in file backup_label problem on windows
Wang, Shenhao <wangsh.fnst@cn.fujitsu.com>
From: "Wang, Shenhao" <wangsh.fnst@cn.fujitsu.com>
To: "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-15T03:29:57Z
Lists: pgsql-hackers
Hi, again:
On windows, if a backup_label file contains a windows(CRLF) line ending.
Recovering from this backup will failed.
I think this is a problem, can I add this to commitfest?
Best Regards,
Shenhao Wang
-----Original Message-----
From: Wang, Shenhao <wangsh.fnst@cn.fujitsu.com>
Sent: Sunday, January 10, 2021 8:58 PM
To: pgsql-hackers@lists.postgresql.org
Subject: invalid data in file backup_label problem on windows
Hi hackers.
When I using a Non-Exclusive Low-Level Backup on windows, "invalid data in file backup_label" will be shown.
The code are listed below
if (fscanf(lfp, "START WAL LOCATION: %X/%X (file %08X%16s)%c",
&hi, &lo, &tli_from_walseg, startxlogfilename, &ch) != 5 || ch != '\n')
ereport(FATAL,
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("invalid data in file \"%s\"", BACKUP_LABEL_FILE)));
When I wrote the backup_label on windows, CRLF will at the end of line, so the ch will be '\r'.
I'm not sure that these two files(tablespace_map and backup_label) should not use CRLF new line style is mentioned in manual[1].
How about setting the text mode when reading these 2 files like patch listed in attachment?
Any thought?
[1] https://www.postgresql.org/docs/13/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
Best Regards,
Shenhao Wang
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