oxidecomputer / oxidecomputer/omicron

test hung after CockroachDB died during initialization

Open
#1,224 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

database Test Flake
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.