Kuadrant / Kuadrant/dns-operator
Flaky Azure E2E test
- Dominant language
- Go
- Stars
- 12
- Forks
- 23
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 14
Description
**Describe the bug**
One (or more) of the E2E tests for Azure are flakily failing as follows:
```
STEP: checking provider zone records are updated as expected @ 08/13/25 15:08:48.866
[debug] records from zone count: 32
STEP: checking ip `127.1.1.1` and owner `` are removed @ 08/13/25 15:09:15.997
STEP: checking remaining records have all(2) domain owners updated within 5m0s @ 08/13/25 15:09:15.997
[FAILED] in [It] - /home/runner/work/dns-operator/dns-operator/test/e2e/multi_record_test.go:357 @ 08/13/25 15:14:15.998
STEP: ensuring all dns records are deleted @ 08/13/25 15:14:15.998
STEP: checking all dns records are removed @ 08/13/25 15:14:16.003
• [FAILED] [662.728 seconds]
Multi Record Test simple [It] creates and deletes distributed dns records [multi_record, simple]
/home/runner/work/dns-operator/dns-operator/test/e2e/multi_record_test.go:133
[FAILED] Timed out after 300.001s.
The function passed to Eventually failed at /home/runner/work/dns-operator/dns-operator/test/e2e/multi_record_test.go:355 with:
Expected
<[]string | len:1, cap:1>: ["34a4mch4"]
to consist of
<[]string | len:2, cap:2>: ["2efnpuob", "34a4mch4"]
the missing elements were
<[]string | len:1, cap:1>: ["2efnpuob"]
In [It] at: /home/runner/work/dns-operator/dns-operator/test/e2e/multi_record_test.go:357 @ 08/13/25 15:14:15.998
```
The code segment to fail is
```
if txtRegistryEnabled {
By(fmt.Sprintf("checking remaining records have all(%v) domain owners updated within %s", len(allOwners), recordsReadyMaxDuration))
checkStarted = time.Now()
Eventually(func(g Gomega, ctx context.Context) {
for _, tr := range testRecords {
err := tr.cluster.k8sClient.Get(ctx, client.ObjectKeyFromObject(tr.record), tr.record)
g.Expect(err).NotTo(HaveOccurred())
g.Expect(tr.record.Status.DomainOwners).To(ConsistOf(allOwners))
}
}, recordsReadyMaxDuration, 5*time.Second, ctx).Should(Succeed())
GinkgoWriter.Printf("[debug] records updated in %v\n", time.Since(checkStarted))
}
```
https://github.com/Kuadrant/dns-operator/actions/runs/16965972389/job/48089902854
**To Reproduce**
run E2E tests repeatedly until failure
Contributor guide
Research direction
Start with test/e2e/multi_record_test.go, especially the Eventually block around lines 355-357 and the multi-record test near line 133. Run the Azure E2E tests repeatedly and inspect why DomainOwners sometimes contain only one of the expected owners. Done means the test reliably observes all expected owners without timing out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, go
- Domain
- cloud, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100