From 200e47b3946c241f6328cad7496f15d3664eb5a9 Mon Sep 17 00:00:00 2001 From: Grigory Smolkin Date: Thu, 14 May 2020 12:41:11 +0300 Subject: [PATCH] [Issue #203] error out if FIO_FDMAX is exceeded in fio_open --- src/backup.c | 6 +++--- src/utils/file.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backup.c b/src/backup.c index dc4b578b..96b47916 100644 --- a/src/backup.c +++ b/src/backup.c @@ -352,6 +352,9 @@ do_backup_instance(PGconn *backup_conn, PGNodeInfo *nodeInfo, bool no_sync) dir_list_file(backup_files_list, parray_get(external_dirs, i), false, true, false, i+1, FIO_DB_HOST); + /* close ssh session in main thread */ + fio_disconnect(); + /* Sanity check for backup_files_list, thank you, Windows: * https://github.com/postgrespro/pg_probackup/issues/48 */ @@ -526,9 +529,6 @@ do_backup_instance(PGconn *backup_conn, PGNodeInfo *nodeInfo, bool no_sync) arg->ret = 1; } - /* close ssh session in main thread */ - fio_disconnect(); - /* Run threads */ thread_interrupted = false; elog(INFO, "Start transferring data files"); diff --git a/src/utils/file.c b/src/utils/file.c index 15e75891..38ea60b4 100644 --- a/src/utils/file.c +++ b/src/utils/file.c @@ -348,9 +348,9 @@ int fio_open(char const* path, int mode, fio_location location) mask = fio_fdset; for (i = 0; (mask & 1) != 0; i++, mask >>= 1); - if (i == FIO_FDMAX) { - return -1; - } + if (i == FIO_FDMAX) + elog(ERROR, "FIO_FDMAX is exceeded, probably too many remote files has been opened"); + hdr.cop = FIO_OPEN; hdr.handle = i; hdr.size = strlen(path) + 1;