Skip to content

Commit adee1ef

Browse files
committed
Fix remote restore
1 parent d064a64 commit adee1ef

File tree

5 files changed

+15
-10
lines changed

5 files changed

+15
-10
lines changed

src/backup.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -2317,8 +2317,9 @@ backup_files(void *arg)
23172317
}
23182318
}
23192319
else if (strcmp(file->name, "pg_control") == 0)
2320-
copy_pgcontrol_file(arguments->from_root, arguments->to_root,
2321-
file, FIO_BACKUP_HOST);
2320+
copy_pgcontrol_file(arguments->from_root, FIO_DB_HOST,
2321+
arguments->to_root, FIO_BACKUP_HOST,
2322+
file);
23222323
else
23232324
{
23242325
bool skip = false;

src/merge.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ merge_files(void *arg)
559559
}
560560
}
561561
else if (strcmp(file->name, "pg_control") == 0)
562-
copy_pgcontrol_file(argument->from_root, argument->to_root, file, FIO_LOCAL_HOST);
562+
copy_pgcontrol_file(argument->from_root, FIO_LOCAL_HOST, argument->to_root, FIO_LOCAL_HOST, file);
563563
else
564564
copy_file(argument->from_root, FIO_LOCAL_HOST, argument->to_root, FIO_LOCAL_HOST, file);
565565

src/pg_probackup.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,8 @@ extern pg_crc32c get_pgcontrol_checksum(const char *pgdata_path);
612612
extern uint32 get_xlog_seg_size(char *pgdata_path);
613613
extern void set_min_recovery_point(pgFile *file, const char *backup_path,
614614
XLogRecPtr stop_backup_lsn);
615-
extern void copy_pgcontrol_file(const char *from_root, const char *to_root,
616-
pgFile *file, fio_location location);
615+
extern void copy_pgcontrol_file(const char *from_root, fio_location location, const char *to_root, fio_location to_location,
616+
pgFile *file);
617617

618618
extern void sanityChecks(void);
619619
extern void time2iso(char *buf, size_t len, time_t time);

src/restore.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -674,9 +674,13 @@ restore_files(void *arg)
674674
parse_program_version(arguments->backup->program_version));
675675
}
676676
else if (strcmp(file->name, "pg_control") == 0)
677-
copy_pgcontrol_file(from_root, instance_config.pgdata, file, FIO_DB_HOST);
677+
copy_pgcontrol_file(from_root, FIO_BACKUP_HOST,
678+
instance_config.pgdata, FIO_DB_HOST,
679+
file);
678680
else
679-
copy_file(from_root, FIO_BACKUP_HOST, instance_config.pgdata, FIO_DB_HOST, file);
681+
copy_file(from_root, FIO_BACKUP_HOST,
682+
instance_config.pgdata, FIO_DB_HOST,
683+
file);
680684

681685
/* print size of restored file */
682686
if (file->write_size != BYTES_INVALID)

src/util.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -360,14 +360,14 @@ set_min_recovery_point(pgFile *file, const char *backup_path,
360360
* Copy pg_control file to backup. We do not apply compression to this file.
361361
*/
362362
void
363-
copy_pgcontrol_file(const char *from_root, const char *to_root, pgFile *file, fio_location location)
363+
copy_pgcontrol_file(const char *from_root, fio_location from_location, const char *to_root, fio_location to_location, pgFile *file)
364364
{
365365
ControlFileData ControlFile;
366366
char *buffer;
367367
size_t size;
368368
char to_path[MAXPGPATH];
369369

370-
buffer = slurpFile(from_root, XLOG_CONTROL_FILE, &size, false, FIO_DB_HOST);
370+
buffer = slurpFile(from_root, XLOG_CONTROL_FILE, &size, false, from_location);
371371

372372
digestControlFile(&ControlFile, buffer, size);
373373

@@ -376,7 +376,7 @@ copy_pgcontrol_file(const char *from_root, const char *to_root, pgFile *file, fi
376376
file->write_size = size;
377377

378378
join_path_components(to_path, to_root, file->path + strlen(from_root) + 1);
379-
writeControlFile(&ControlFile, to_path, location);
379+
writeControlFile(&ControlFile, to_path, to_location);
380380

381381
pg_free(buffer);
382382
}

0 commit comments

Comments
 (0)