oxidecomputer / oxidecomputer/omicron

Avoid scraping logs for dpd port numbers

Open
#2,798 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

networking
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

From conversation in #2694

When starting multiple instances of dpd for running parallel tests in omicron, we provide a port number of 0, so that the underlying OS will pick the next available port number. In order to programmatically provide the dynamically assigned port number to the dpd-client, we are scraping the log output to determine the port. A more reliable / less brittle method would be to have dpd generate a file with the listen-addrs after the api server successfully binds to a port.

Once https://github.com/oxidecomputer/dendrite/issues/211 has been addressed, we can switch to this strategy in our test setup code to reduce potential brittleness in our test suite going forward.

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 by reading dendrite issue #211, then inspect dpd startup and the omicron test setup that launches parallel instances with port 0. Define completion as dpd writing its successfully bound listen addresses to a file so the test setup can consume them instead of scraping logs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.