diff --git a/src/bin/pg_probackup/file.cpp b/src/bin/pg_probackup/file.cpp index 397097ce7..29c218433 100644 --- a/src/bin/pg_probackup/file.cpp +++ b/src/bin/pg_probackup/file.cpp @@ -472,8 +472,10 @@ fio_disconnect(void) Assert(hdr.cop == FIO_DISCONNECTED); SYS_CHECK(close(fio_stdin)); SYS_CHECK(close(fio_stdout)); + SYS_CHECK(close(fio_stderr)); fio_stdin = 0; fio_stdout = 0; + fio_stderr = 0; wait_ssh(); } } @@ -2454,7 +2456,8 @@ void fio_communicate(int in, int out) case FIO_DISCONNECT: hdr.cop = FIO_DISCONNECTED; IO_CHECK(fio_write_all(out, &hdr, sizeof(hdr)), sizeof(hdr)); - break; + free(buf); + return; default: Assert(false); } diff --git a/src/bin/pg_probackup/remote.cpp b/src/bin/pg_probackup/remote.cpp index 0db9ea33e..2f8e3375b 100644 --- a/src/bin/pg_probackup/remote.cpp +++ b/src/bin/pg_probackup/remote.cpp @@ -150,6 +150,9 @@ bool launch_agent(void) ssh_argv[ssh_argc++] = (char *)"-o"; ssh_argv[ssh_argc++] = (char *)"Compression=no"; + ssh_argv[ssh_argc++] = (char *)"-o"; + ssh_argv[ssh_argc++] = (char *)"ControlMaster=no"; + ssh_argv[ssh_argc++] = (char *)"-o"; ssh_argv[ssh_argc++] = (char *)"LogLevel=error";