oxidecomputer / oxidecomputer/omicron
test hung after CockroachDB died during initialization
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
In #1223, I found the test hung after CockroachDB died on SIGSEGV.
The context was I was running the try_repro.sh script to try to repro #1130. This runs (among other things) ./target/debug/deps/test_all-d586ea57740e3382 test_disk_create_disk_that_already_exists_fails in a loop. This was on commit 095dfb698f9cc6838f968f6bb78df1b1a1fbacfc, which is not from "main", but is pretty close to 236f2ac5bffcac799a12d0cedaa6e0faebd3bb5a from "main".
When I found the problem, the test was hung, having emitted only this at the end:
ATTEMPT 246
running 1 test
test integration_tests::disks::test_disk_create_disk_that_already_exists_fails has been running for over 60 seconds
The punchline is that we were stuck during test setup waiting for Oximeter to register with Nexus. This was in an infinite backoff (that is, infinite tries, not an infinite delay) because these requests were failing because the database was down.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with try_repro.sh and the integration_tests::disks::test_disk_create_disk_that_already_exists_fails entry point, then trace test setup while Oximeter registers with Nexus. Inspect the retry and backoff path for database-unavailable requests. Done should mean the setup reports failure instead of hanging indefinitely when CockroachDB is down.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100