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]

Reply via email to