containers / containers/conmon-rs
`[sig-cli] Kubectl client Simple pod should support inline execution and attach` flakes
- Dominant language
- Rust
- Stars
- 254
- Forks
- 51
- Avg merge
- 4h 7m
- Merged PRs (30d)
- 21
Description
### Which jobs are failing?
CRI-O e2e-conmonrs: https://prow.ci.openshift.org/job-history/gs/origin-ci-test/pr-logs/directory/pull-ci-cri-o-cri-o-main-ci-e2e-conmonrs
### Which tests are failing?
`[sig-cli] Kubectl client Simple pod should support inline execution and attach`
### Since when has it been failing?
Since ever, reproducible with latest conmon-rs on `main`.
### Reason for failure (if possible)
The test flakes from time to time not containing the whole output in the logs:
```
[FAILED] Expected
: read:stdin closed
to contain substring
: read:value
In [It] at: test/e2e/kubectl/kubectl.go:764 @ 01/04/23 15:09:48.618
```
https://github.com/kubernetes/kubernetes/blob/a66aad2d80dacc70025f95a8f97d2549ebd3208c/test/e2e/kubectl/kubectl.go#L757-L768
### Anything else we need to know?
It looks like a race between the attach data and the processing in the stdout/err read loops. We added this code part to avoid such a race, but it will still happen after a couple of runs (even locally reproducible):
https://github.com/containers/conmon-rs/blob/29c59058c35432fce89dbfbbfa8fcc2ac6dcfc19/conmon-rs/server/src/container_io.rs#L337-L343
Contributor guide
Research direction
Start with server/src/container_io.rs around lines 337-343 and the Kubernetes test at test/e2e/kubectl/kubectl.go lines 757-768. Reproduce the CRI-O e2e-conmonrs failure and inspect the attach data flow alongside the stdout and stderr read loops. Done means the Simple pod execution and attach test consistently captures the complete expected output without flakes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, rust
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100