Kuadrant / Kuadrant/dns-operator

Flaky Azure E2E test

Open
#528 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.