From 633689622811b43b0bc4111114ce1fd8f4ca86ae Mon Sep 17 00:00:00 2001 From: "mchekalov@gmail.com" Date: Fri, 19 Jun 2026 15:28:03 +0500 Subject: [PATCH 1/2] fix: [CPCAP-10664] - return handling of grep find nothing error --- services/backup-daemon/docker/granular/pg_backup.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/backup-daemon/docker/granular/pg_backup.py b/services/backup-daemon/docker/granular/pg_backup.py index 184b4e64..774d29a2 100644 --- a/services/backup-daemon/docker/granular/pg_backup.py +++ b/services/backup-daemon/docker/granular/pg_backup.py @@ -498,8 +498,7 @@ def fetch_roles(self, database): output, type(output), exit_code ) ) - # grep exits 1 when no lines match, which is valid (no owner roles found) - if exit_code not in (0, 1): + if exit_code != 0: stderr.seek(0) raise backups.BackupFailedException( database, "\n".join(stderr.readlines()) @@ -545,8 +544,8 @@ def dump_roles_for_db(self, roles, database): output, err = p.communicate() self.log.debug("Fetch roles command: {}".format(cmd)) exit_code = p.returncode - # grep exits 1 when no lines match, which is valid (no roles to dump) - if exit_code not in (0, 1): + + if exit_code != 0: stderr.seek(0) raise backups.BackupFailedException( database, "\n".join(stderr.readlines()) From 78638faee0430b93e63dbf922959c878657ea6af Mon Sep 17 00:00:00 2001 From: "mchekalov@gmail.com" Date: Wed, 24 Jun 2026 15:21:35 +0500 Subject: [PATCH 2/2] fix: [CPCAP-10664] pg_dumpall call upd --- services/backup-daemon/docker/granular/pg_backup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/backup-daemon/docker/granular/pg_backup.py b/services/backup-daemon/docker/granular/pg_backup.py index 774d29a2..68afc93a 100644 --- a/services/backup-daemon/docker/granular/pg_backup.py +++ b/services/backup-daemon/docker/granular/pg_backup.py @@ -540,7 +540,9 @@ def dump_roles_for_db(self, roles, database): ) ) cmd = cmd + encrypt_cmd - p = Popen(cmd, shell=True, stdout=dump, stderr=stderr) + proc_env = os.environ.copy() + proc_env["PGPASSWORD"] = configs.postgres_password() or "" + p = Popen(cmd, shell=True, stdout=dump, stderr=stderr, env=proc_env) output, err = p.communicate() self.log.debug("Fetch roles command: {}".format(cmd)) exit_code = p.returncode