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
0001-set-text-mode-when-reading-backup_label-and-tablesap.patch
Description: 0001-set-text-mode-when-reading-backup_label-and-tablesap.patch
