From 9289e680d6dfc91996135ef35855c5d69861675d Mon Sep 17 00:00:00 2001 From: Chris Thain <32781396+cthain@users.noreply.github.com> Date: Wed, 14 Jun 2023 10:04:40 -0700 Subject: [PATCH] OSS merge: Update error handling login when applying extensions (#17740) --- agent/xds/delta.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/agent/xds/delta.go b/agent/xds/delta.go index 5e4cf70209..f84b633a85 100644 --- a/agent/xds/delta.go +++ b/agent/xds/delta.go @@ -492,6 +492,7 @@ func applyEnvoyExtension(logger hclog.Logger, cfgSnap *proxycfg.ConfigSnapshot, extender, err := envoyextensions.ConstructExtension(ext) metrics.MeasureSinceWithLabels([]string{"envoy_extension", "validate_arguments"}, now, getMetricLabels(err)) if err != nil { + errorParams = append(errorParams, "error", err) logFn("failed to construct extension", errorParams...) if ext.Required { @@ -507,6 +508,7 @@ func applyEnvoyExtension(logger hclog.Logger, cfgSnap *proxycfg.ConfigSnapshot, if err != nil { errorParams = append(errorParams, "error", err) logFn("failed to validate extension arguments", errorParams...) + if ext.Required { return status.Errorf(codes.InvalidArgument, "failed to validate arguments for extension %q for service %q", ext.Name, svc.Name) } @@ -517,9 +519,13 @@ func applyEnvoyExtension(logger hclog.Logger, cfgSnap *proxycfg.ConfigSnapshot, now = time.Now() _, err = extender.Extend(resources, &runtimeConfig) metrics.MeasureSinceWithLabels([]string{"envoy_extension", "extend"}, now, getMetricLabels(err)) - logFn("failed to apply envoy extension", errorParams...) - if err != nil && ext.Required { - return status.Errorf(codes.InvalidArgument, "failed to patch xDS resources in the %q extension: %v", ext.Name, err) + if err != nil { + errorParams = append(errorParams, "error", err) + logFn("failed to apply envoy extension", errorParams...) + + if ext.Required { + return status.Errorf(codes.InvalidArgument, "failed to patch xDS resources in the %q extension: %v", ext.Name, err) + } } return nil