@@ -274,6 +274,7 @@ validate_wal(pgBackup *backup,
274
274
TimeLineID tli )
275
275
{
276
276
XLogRecPtr startpoint = backup -> start_lsn ;
277
+ char * backup_id ;
277
278
XLogRecord * record ;
278
279
XLogReaderState * xlogreader ;
279
280
char * errormsg ;
@@ -283,17 +284,20 @@ validate_wal(pgBackup *backup,
283
284
char last_timestamp [100 ],
284
285
target_timestamp [100 ];
285
286
bool all_wal = false;
286
- char backup_xlog_path [MAXPGPATH ];
287
+ char backup_xlog_path [MAXPGPATH ];
288
+
289
+ /* We need free() this later */
290
+ backup_id = base36enc (backup -> start_time );
287
291
288
292
if (!XRecOffIsValid (backup -> start_lsn ))
289
293
elog (ERROR , "Invalid start_lsn value %X/%X of backup %s" ,
290
294
(uint32 ) (backup -> start_lsn >> 32 ), (uint32 ) (backup -> start_lsn ),
291
- base36enc ( backup -> start_time ) );
295
+ backup_id );
292
296
293
297
if (!XRecOffIsValid (backup -> stop_lsn ))
294
298
elog (ERROR , "Invalid stop_lsn value %X/%X of backup %s" ,
295
299
(uint32 ) (backup -> stop_lsn >> 32 ), (uint32 ) (backup -> stop_lsn ),
296
- base36enc ( backup -> start_time ) );
300
+ backup_id );
297
301
298
302
/*
299
303
* Check that the backup has all wal files needed
@@ -302,13 +306,15 @@ validate_wal(pgBackup *backup,
302
306
if (backup -> stream )
303
307
{
304
308
sprintf (backup_xlog_path , "/%s/%s/%s/%s" ,
305
- backup_instance_path , base36enc ( backup -> start_time ) , DATABASE_DIR , PG_XLOG_DIR );
309
+ backup_instance_path , backup_id , DATABASE_DIR , PG_XLOG_DIR );
306
310
307
311
validate_backup_wal_from_start_to_stop (backup , backup_xlog_path , tli );
308
312
}
309
313
else
310
314
validate_backup_wal_from_start_to_stop (backup , (char * ) archivedir , tli );
311
315
316
+ free (backup_id );
317
+
312
318
/* If recovery target is provided, ensure that archive exists. */
313
319
if (dir_is_empty (archivedir )
314
320
&& (TransactionIdIsValid (target_xid ) || target_time != 0 ))
0 commit comments