From 6f54211fa13ad3b94f983c33dd9095cec21bcbb3 Mon Sep 17 00:00:00 2001 From: matan77 Date: Mon, 6 Apr 2026 03:22:00 +0300 Subject: [PATCH 1/3] Fix error handling in disableCustomExtensionsInDB function --- percona/controller/pgcluster/controller.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/percona/controller/pgcluster/controller.go b/percona/controller/pgcluster/controller.go index 8b1519f17..f7cc43dd4 100644 --- a/percona/controller/pgcluster/controller.go +++ b/percona/controller/pgcluster/controller.go @@ -765,9 +765,11 @@ func disableCustomExtensionsInDB(ctx context.Context, exec postgres.Executor, cu }, ) - log.V(1).Info("extension was disabled ", "extensionName", extensionName) + if err != nil { + return errors.Wrap(err, "custom extension deletion") + } - return errors.Wrap(err, "custom extension deletion") + log.V(1).Info("extension was disabled ", "extensionName", extensionName) } return nil From 2858203caee7f2983b8e4117ec8ec737cd023f67 Mon Sep 17 00:00:00 2001 From: matan77 Date: Mon, 6 Apr 2026 03:23:08 +0300 Subject: [PATCH 2/3] Rename array to removedExtensions for clarity --- percona/controller/pgcluster/controller.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/percona/controller/pgcluster/controller.go b/percona/controller/pgcluster/controller.go index f7cc43dd4..4b5b1f02f 100644 --- a/percona/controller/pgcluster/controller.go +++ b/percona/controller/pgcluster/controller.go @@ -698,7 +698,7 @@ func (r *PGClusterReconciler) reconcileCustomExtensions(ctx context.Context, cr } if cr.CompareVersion("2.6.0") >= 0 { - var removedExtension []string + var removedExtensions []string installedExtensions := cr.Status.InstalledCustomExtensions crExtensions := make(map[string]struct{}) for _, ext := range extensionNames { @@ -709,13 +709,13 @@ func (r *PGClusterReconciler) reconcileCustomExtensions(ctx context.Context, cr for _, ext := range installedExtensions { // If an object exists in installedExtensions but not in crExtensions, the extension should be deleted. if _, ok := crExtensions[ext]; !ok { - removedExtension = append(removedExtension, ext) + removedExtensions = append(removedExtensions, ext) } } - if len(removedExtension) > 0 { + if len(removedExtensions) > 0 { disable := func(ctx context.Context, exec postgres.Executor) error { - return errors.WithStack(disableCustomExtensionsInDB(ctx, exec, removedExtension)) + return errors.WithStack(disableCustomExtensionsInDB(ctx, exec, removedExtensions)) } primary, err := perconaPG.GetPrimaryPod(ctx, r.Client, cr) From 8dfd9dcd424ecefc7e8a041ca7a7b7bbf4875019 Mon Sep 17 00:00:00 2001 From: matan77 <83426124+matan77@users.noreply.github.com> Date: Tue, 7 Apr 2026 21:18:46 +0300 Subject: [PATCH 3/3] refactor: change to a more precise error --- percona/controller/pgcluster/controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/percona/controller/pgcluster/controller.go b/percona/controller/pgcluster/controller.go index 4b5b1f02f..22cf17a00 100644 --- a/percona/controller/pgcluster/controller.go +++ b/percona/controller/pgcluster/controller.go @@ -766,7 +766,7 @@ func disableCustomExtensionsInDB(ctx context.Context, exec postgres.Executor, cu ) if err != nil { - return errors.Wrap(err, "custom extension deletion") + return errors.Wrap(err, "drop custom extension") } log.V(1).Info("extension was disabled ", "extensionName", extensionName)