grafana/apps/provisioning/pkg/controller
Roberto Jiménez Sánchez b3784aac27
Provisioning: Retry SQLITE_BUSY on repository status patch (#123873)
Provisioning: Retry SQLITE_BUSY on repo status patch

The repository status patcher only retried K8s optimistic-concurrency
conflicts. When the unified storage SQL backend bubbles a transient
SQLITE_BUSY through the apiserver (as a 500 InternalError carrying the
"database is locked"/"SQLITE_BUSY" text), the patch failed instead of
retrying. This surfaced as flakes such as
TestIntegrationProvisioning_FullSync_FolderMetadataTitle on the SQLite
shards.

Switch to retry.OnError with a predicate that retries both K8s conflicts
and SQLite lock contention, and add a unit test for the new path.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 15:20:18 +03:00
..
connection_status.go Provisioning: Add connection operator with health check updates (#116028) 2026-01-09 09:08:49 +01:00
historyjob.go Provisioning: Improve logging and tracing in job processing (#113454) 2025-11-12 14:59:27 +01:00
job.go
job_test.go Chore: Upgrade app-sdk to 0.50.1 (#117292) 2026-02-10 13:55:07 +03:00
labels.go Provisioning: skips jobs for repositories that are pending deletion (#120582) 2026-03-18 16:54:20 +00:00
labels_test.go Provisioning: skips jobs for repositories that are pending deletion (#120582) 2026-03-18 16:54:20 +00:00
status.go Provisioning: Retry SQLITE_BUSY on repository status patch (#123873) 2026-04-30 15:20:18 +03:00
status_test.go Provisioning: Retry SQLITE_BUSY on repository status patch (#123873) 2026-04-30 15:20:18 +03:00