bzp2010 commented on code in PR #2890:
URL:
https://github.com/apache/apisix-ingress-controller/pull/2890#discussion_r4090309309
##########
internal/provider/apisix/status.go:
##########
@@ -121,13 +152,21 @@ func (d *apisixProvider) classifySyncResult(
anyUnattributed := false
for _, syncStatus := range addrErr.FailedStatuses {
+ reason := fmt.Sprintf("ServerAddr: %s, Error:
%s", addrErr.ServerAddr, syncStatus.Reason)
+ if key, ex, ok := d.dropUnit(configName,
syncStatus.Event); ok {
+ if previous, ok := dropped[key]; ok {
+ reason = previous.reason + "; "
+ reason
+ }
+ ex.reason = reason
+ dropped[key] = ex
+ continue
Review Comment:
Not fixing this: GatewayProxy's condition is recomputed fresh every round
directly from that round's own result, not carried forward, so this only shows
up for the one round before the rejected resource is excluded. Excluding it
triggers an immediate retry (syncNotify), and the next round no longer has this
addrErr's EndpointStatuses at all since the resource is now excluded from the
push, so the condition clears itself right away. At worst this leaves one stale
event behind; it doesn't leave the GatewayProxy stuck reporting unavailable.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]