AlinsRan opened a new pull request, #2816: URL: https://github.com/apache/apisix-ingress-controller/pull/2816
### Type of change: - [x] Bugfix ### What this PR does / why we need it: Part of #2783 Kubernetes rejects a status update whose condition `Message` exceeds 32768 bytes (`status.conditions[0].message: Too long: may not be more than 32768 bytes`). When a many-path `ApisixRoute` fails to sync, `handleStatusUpdate` aggregates every sub-error into one condition message via `strings.Join`, which easily overflows the limit. The update is then rejected and only logged, so the resource status is silently never written. This adds a shared, rune-safe `TruncateConditionMessage` helper (caps at 32768 bytes, backs off to a UTF-8 rune boundary, appends a `... (truncated)` marker) and routes every condition-message constructor through it: `NewConditionTypeAccepted`, `NewCondition`, `NewPolicyCondition`, `NewPolicyConflictCondition`. Note: this bounds the message so status writes always succeed. The broader scaling issue in #2783 (large standalone config push hitting APISIX's `standalone-config` shared-dict limit) is separate and data-plane-side. ### Pre-submission checklist: - [x] Did you explain what problem does this PR solve? - [x] Have you added corresponding test cases? - [ ] Have you modified the corresponding document? (n/a) - [x] Is this PR backward compatible? -- 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]
