From 6a50e9ff8e1458af62ca7b4902590927c4dce621 Mon Sep 17 00:00:00 2001 From: wave_what Date: Tue, 29 Aug 2023 16:40:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=B5=84=E6=BA=90=E6=B3=84?= =?UTF-8?q?=E9=9C=B2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bin/pg_probackup/data.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/bin/pg_probackup/data.cpp b/src/bin/pg_probackup/data.cpp index 52e71a19c..5d8dd5ad2 100644 --- a/src/bin/pg_probackup/data.cpp +++ b/src/bin/pg_probackup/data.cpp @@ -1760,7 +1760,10 @@ validate_file_pages(pgFile *file, const char *fullpath, XLogRecPtr stop_lsn, PageState page_st; if (interrupted || thread_interrupted) + { + fclose(in); elog(ERROR, "Interrupted during data file validation"); + } /* newer backups have page headers in separate storage */ if (headers) @@ -1785,8 +1788,11 @@ validate_file_pages(pgFile *file, const char *fullpath, XLogRecPtr stop_lsn, if (cur_pos_in != headers[n_hdr].pos) { if (fio_fseek(in, headers[n_hdr].pos) < 0) + { + fclose(in); elog(ERROR, "Cannot seek block %u of \"%s\": %s", blknum, fullpath, strerror(errno)); + } else elog(INFO, "Seek to %u", headers[n_hdr].pos); @@ -1874,6 +1880,7 @@ validate_file_pages(pgFile *file, const char *fullpath, XLogRecPtr stop_lsn, } elog(WARNING, "Page %u of file \"%s\" uncompressed to %d bytes. != BLCKSZ", blknum, fullpath, uncompressed_size); + fclose(in); return false; }