Comments (9)
/assign
from client.
The original issue is not fixed. We need to further investigate & verify the wait loop is working as expected and maybe fix ti.
@xiangpingjiang I'll remove your previous assignment. But feel free to assign again and do a second pass if you are still interested.
from client.
The original issue is not fixed. We need to further investigate & verify the wait loop is working as expected and maybe fix ti.
@xiangpingjiang I'll remove your previous assignment. But feel free to assign again and do a second pass if you are still interested.
@dsimansk
Did you find that e2e/TestDomain not pass after #1888 merged?
from client.
The original issue is not fixed. We need to further investigate & verify the wait loop is working as expected and maybe fix ti.
@xiangpingjiang I'll remove your previous assignment. But feel free to assign again and do a second pass if you are still interested.@dsimansk Did you find that e2e/TestDomain not pass after #1888 merged?
from client.
/assign
from client.
The suspicious part in test log is the following. See age:
field is 1s, URL
is still empty, but the test is already failed with missing string error.
There's still possibility to a short timeout (e.g. 3 - 5s) between create and verify operations. But I'd rather check first if the wait loop is working as expected.
domain_mapping_test.go:153: assertion failed:
Actual output: Name: newdomain.com
Namespace: kne2etests21
Age: 1s
URL:
Reference:
APIVersion: serving.knative.dev/v1
Kind: Service
Name: hello
Conditions:
OK TYPE AGE REASON
Missing strings: https://newdomain.com/
from client.
It could be a timing related issue. This may work better for the for loop
func domainDescribe(r *test.KnRunResultCollector, domainName string, tls bool) {
k := test.NewKubectl(r.KnTest().Kn().Namespace())
// Wait for Domain Mapping URL to be populated
var url string
timeout := time.After(30 * time.Second) // Adjust the timeout as needed
for {
select {
case <-time.After(time.Second):
out, err := k.Run("get", "domainmapping", domainName, "-o=jsonpath='{.status.url}'")
assert.NilError(r.T(), err)
if len(out) > 0 {
url = out
break
}
case <-timeout:
assert.Fail(r.T(), "Timed out waiting for the domain mapping URL to be populated")
return
}
}
out := r.KnTest().Kn().Run("domain", "describe", domainName)
r.AssertNoError(out)
if tls {
url = "https://" + domainName
} else {
url = "http://" + domainName
}
assert.Assert(r.T(), util.ContainsAll(out.Stdout, "Name", "Namespace", "URL", "Service", url))
}
By introducing this more robust waiting mechanism, you can mitigate timing issues and reduce the likelihood of intermittent test failures.
from client.
Thanks @Ipppoooo , i think its worth a try. Maybe don't retry every second as this will cause 30 calls if this is a non-recoverable error. Maybe use e.g. 5seconds or an exponential backoff. Fancy to send in a PR ?
from client.
hello @rhuss
I think the reason maybe the break condition in for loop is len(out) > 0, but the assert condition is util.ContainsAll(out.Stdout, "Name", "Namespace", "URL", "Service", url).
It's different conditions.
What do you think?
from client.
Related Issues (20)
- Update plugin development docs HOT 5
- Can not get my broker through `kn broker list` HOT 6
- [48h Knative] KServe plugin HOT 4
- Align GVK format accepted by `--channel` flag HOT 11
- Wrong version for kn create kafka channel HOT 7
- Add integration tests for all command usage examples in the binary HOT 5
- [48h Knative] Annotation and Label profiles HOT 1
- [48h Knative] Color output HOT 3
- [48h Knative] UX Evaluation HOT 9
- [48h Knative] Kamelet Sinks HOT 2
- [48h Knative] Command Usage Example Integration Testing POC HOT 3
- [48h Knative] Improved Logging HOT 5
- [48h Knative] Good first issues HOT 3
- Cmd `kn service wait` doesn't end on ready ksvc as expected
- CLI: `--user` option does not work as expected
- Add missing completion support for fish and PowerShell shells
- Error: fork/exec /usr/local/bin/kn-func: exec format error HOT 1
- Proposal: Fold back in client-pkg to Go submodule HOT 9
- kn service export doesn't work with traffic splits
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from client.