Skip to content

fix(audio-quality): the congestion shaper profile ships as a moq-shaper builtin - #8493

Closed
kixelated wants to merge 1 commit into
mainfrom
fix/congestion-profile
Closed

kixelated wants to merge 1 commit into
mainfrom
fix/congestion-profile

Conversation

@kixelated

@kixelated kixelated commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

main fails moq-relay's config::tests::repository_configs_load. That test loads every tracked .toml under test/ as a relay config, and moq-dev/moq#8459 added test/audio-quality/congestion.toml, a moq-shaper profile, so the relay config parser refuses its down table.

Shaper profiles live in rs/moq-shaper/profiles/. This moves congestion.toml there as a built-in, so run.sh passes --profile congestion the way it already passes bursty and step. The moq-shaper and audio-quality READMEs are updated to match.

Impact

  • Public API: none. Wire: none.
  • moq-shaper --profile congestion is a new built-in name.

Validation

  • cargo test -p moq-shaper -p moq-relay --lib: passes, including repository_configs_load and the builtin preset tests.
  • just check: everything passes except moq-gst's a_moqsink_restart_keeps_pads_when_caps_arrive_at_different_times. This change doesn't touch that test, and moq-dev/moq#8438 disables it as flaky.

Caused by

  • moq-dev/moq#8459 put a shaper profile among the relay fixtures repository_configs_load scans.

Models

Size: XS
Implementer: Claude Code, claude-opus-5-5, medium effort

🤖 Generated with Claude Code

(Written by Opus 5.5 with medium)

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, low effort
  • Session: 01a1c855-1d2b-7672-882b-45a9cb95c088, round 1
  • Head: fbd443d
  • Base: origin/main at 114b14f
  • Score: 10/10, The change consistently relocates the unchanged congestion profile through the existing preset mechanism, with no actionable regressions found by source inspection; builds and tests were not run as instructed.
  • Findings: none

…er builtin

test/audio-quality/congestion.toml sat where moq-relay's repository_configs_load
test reads every tracked TOML as a relay config, so main failed on its unknown
`down` field. Shaper profiles live in rs/moq-shaper/profiles/, so it moves there
and run.sh passes it by name like bursty and step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 11, 2026 02:00
@coderabbitai

coderabbitai Bot commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 6 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f8153e98-48a0-4603-ab3c-fa6bc315b32c
Commits

Reviewing files that changed from the base of the PR and between 114b14f and fbd443d.

Files selected for processing: 5

  • rs/moq-shaper/README.md
  • rs/moq-shaper/profiles/congestion.toml
  • rs/moq-shaper/src/preset.rs
  • test/audio-quality/README.md
  • test/audio-quality/run.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated
kixelated added this pull request to the merge queue Nov 11, 2026
@kixelated
kixelated removed this pull request from the merge queue due to a manual request Nov 11, 2026
@kixelated
kixelated added this pull request to the merge queue Nov 11, 2026
@moq-bot

moq-bot Bot commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

quest land watch: the merge queue removed this pull request at fbd443d because kixelated removed it (manual).

A person's removal ends the pick: the watcher leaves this pull request alone until a maintainer enqueues it again.

(written by quest land watch)

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed fbd443d. No actionable findings.

Direction: moving the congestion profile out of the relay-fixture directory and embedding it through the existing preset registry is consistent with the intended fix. The moved TOML is byte-identical, the audio harness now selects the matching built-in name, and the documentation follows the new location. Existing all-built-in tests include the new preset automatically.

Verification limits: GitHub-only static review of all five changed files and preset loading/tests. No builds, tests, or audio-quality runs performed; author-reported checks were not independently verified.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes

  • Profile moved, not rewritten — test/audio-quality/congestion.toml becomes rs/moq-shaper/profiles/congestion.toml as a pure rename (R100), so its seed, step timing, and rate are unchanged.
  • Registered as a builtin — rs/moq-shaper/src/preset.rs appends ("congestion", include_str!("../profiles/congestion.toml")) to BUILTIN, and the audio lane's shaper_of now passes --profile congestion instead of the file path, so lane behavior is unchanged (the lane's --seed 7 still overrides the profile's seed = 8).
  • Docs updated — the shaper README lists the builtin in BUILTIN order, and the audio-lane README links the new path and drops the old fixture row.

I ran the suites this touches: cargo test -p moq-shaper --lib (builtin parse/name/bind tests pass), cargo test -p moq-relay --lib config::tests::repository_configs_load (passes at fbd443d), and bun test test/audio-quality/clients/js/src/run.test.ts.

ℹ️ The relay fixture scan still accepts any tracked TOML under test/

This fix relocates the offending file rather than narrowing the scan, so repository_configs_load still parses every tracked .toml under test/ as a relay config. Not a blocker here — the profile genuinely belongs in the shaper crate — but the next lane fixture that is not a relay config reintroduces the same failure.

Technical details
# Relay fixture scan
## Affected sites
- rs/moq-relay/src/config.rs:959-991 — repository_configs_load skips Cargo.toml, rust-toolchain.toml, and bunfig.toml by name, then parses everything else as a relay config.

## Required outcome (optional follow-up)
- Narrow the scan to relay configs (filename pattern or a small allowlist), or add the shaper profile's location to the skip rule, so a future lane fixture does not trip it.

## Open questions
- Is the loose scan intentional, so a new relay fixture is picked up without editing the test?

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 11, 2026
@moq-bot

moq-bot Bot commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

quest land watch: the merge queue removed this pull request at fbd443d because its merge_group build failed (failed_checks).

The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs.

Queue / Queue (job) failure at step Check:

…ks.rs
src/vendor/dimpl/timer.rs
src/vendor/dimpl/types.rs
src/vendor/dimpl/util.rs
src/vendor/dimpl/window.rs
src/vendor/is/agent.rs
src/vendor/is/candidate.rs
src/vendor/is/error.rs
src/vendor/is/hmac_provider.rs
src/vendor/is/pair.rs
src/vendor/is/parse.rs
src/vendor/is/preference.rs
src/vendor/is/stun.rs
src/vendor/netem/config.rs
src/vendor/netem/loss.rs
src/vendor/sctp_proto/association/mod.rs
src/vendor/sctp_proto/chunk/mod.rs
src/vendor/sctp_proto/config.rs
src/vendor/sctp_proto/endpoint/mod.rs
src/vendor/sctp_proto/error.rs
src/vendor/sctp_proto/packet.rs
src/vendor/sctp_proto/param/mod.rs
src/vendor/sctp_proto/queue/mod.rs
src/vendor/sctp_proto/shared.rs
src/vendor/sctp_proto/tests/partial_reliability.rs
src/vendor/sctp_proto/util.rs
src/vendor/str0m/change/mod.rs
src/vendor/str0m/channel.rs
src/vendor/str0m/crypto/mod.rs
src/vendor/str0m/dtls.rs
src/vendor/str0m/error.rs
src/vendor/str0m/format/mod.rs
src/vendor/str0m/io/mod.rs
src/vendor/str0m/media/mod.rs
src/vendor/str0m/pacer/mod.rs
src/vendor/str0m/packet/mod.rs
src/vendor/str0m/poll.rs
src/vendor/str0m/sctp/mod.rs
src/vendor/str0m/sdp/mod.rs
src/vendor/str0m/session.rs
src/vendor/str0m/streams/mod.rs
src/vendor/str0m/tests/mod.rs
src/vendor/str0m/util/mod.rs
src/vendor/str0m_proto/bandwidth.rs
src/vendor/str0m_proto/crypto/mod.rs
src/vendor/str0m_proto/id.rs
src/vendor/str0m_proto/net.rs
src/vendor/str0m_proto/pii.rs
src/vendor/str0m_proto/rng.rs
src/vendor/str0m_proto/sha1.rs
src/vendor/str0m_rind/dtls.rs
src/vendor/str0m_rind/hash.rs
src/vendor/str0m_rind/srtp.rs (delete these files)
# The workspace-hack's table order is `cargo hakari`'s, which `cargo sort` disagrees with.
cargo sort --check --no-format . $(cargo metadata --locked --no-deps --format-version 1 | jq -r '.packages[] | select(.name != "workspace-hack") | .manifest_path | rtrimstr("/Cargo.toml")')
Checking ....
Checking bridge...
Checking moq-mux...
Checking hang...
Checking kio...
Checking macros...
Checking test-env...
Checking bench-harness...
Checking moq-json...
Checking moq-net...
Checking moq-pattern...
Checking moq-tokio...
Checking moq-congestion...
Checking moq-crypto...
Checking moq-quic...
Checking moq-sock...
Checking qmux...
Checking moq-shaper...
Checking moq-loc...
Checking moq-msf...
Checking moq-video...
Checking moq-nvenc...
Checking moq-v4l...
Checking moq-vaapi...
Checking libmoq...
Checking moq-archive...
Checking moq-audio...
Checking moq-hls...
Checking moq-auth...
Checking moq-bench...
Checking moq-boy...
Checking moq-c...
Checking moq-cli...
Checking moq-relay...
Checking moq-stats...
Checking moq-uring...
Checking moq-rtmp...
Checking moq-rtsp...
Checking moq-srt...
Checking moq-transcode...
Checking moq-webrtc...
Checking moq-ffi...
Checking moq-gst...
Checking moq-native...
Checking moq-net-tests...
Checking moq-room...
Checking uniffi-bindgen...
Checking fuzz...
Checking fuzz...
Checking fuzz...
Checking fuzz...
cargo hakari generate --diff
python3 sh/rs/hakari.py
python3 sh/rs/crypto.py
no C crypto on 12 targets: aarch64-apple-darwin aarch64-apple-ios aarch64-apple-ios-sim aarch64-linux-android aarch64-unknown-linux-gnu armv7-linux-androideabi armv7-unknown-linux-gnueabihf x86_64-apple-darwin x86_64-apple-ios x86_64-linux-android x86_64-pc-windows-msvc x86_64-unknown-linux-gnu
bash sh/local.sh cargo clippy --locked -p moq-audio -p moq-video --tests -- -D warnings
    Checking moq-net v0.3.10 (/var/cache/github-runner-work/moq/moq/rs/moq-net)
    Checking moq-json v0.5.8 (/var/cache/github-runner-work/moq/moq/rs/moq-json)
    Checking moq-loc v0.2.19 (/var/cache/github-runner-work/moq/moq/rs/moq-loc)
    Checking hang v0.21.11 (/var/cache/github-runner-work/moq/moq/rs/hang)
mbx[progress]: 15s elapsed; 2 hits, 1 misses, 0 bypassed, 0 not looked up; ~24.77s compiler work saved
    Checking moq-mux v0.10.11 (/var/cache/github-runner-work/moq/moq/rs/moq-mux)
mbx[progress]: 30s elapsed; 2 hits, 2 misses, 0 bypassed, 0 not looked up; ~24.77s compiler work saved
    Checking moq-hls v0.5.11 (/var/cache/github-runner-work/moq/moq/rs/moq-hls)
    Checking moq-audio v0.1.10 (/var/cache/github-runner-work/moq/moq/rs/moq-audio)
    Checking moq-video v0.1.10 (/var/cache/github-runner-work/moq/moq/rs/moq-video)
mbx[progress]: 45s elapsed; 2 hits, 6 misses, 0 bypassed, 0 not looked up; ~24.77s compiler work saved
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.56s
mbx[cache]: object cache: 2 hits, 8 misses; 0 B downloaded, 0 B uploaded, 9.2 MiB stored locally
mbx[cache]: 51.15s session; 24.77s estimated compiler time avoided (summed across compilations)
mbx[cache]: Cargo artifact reuse and CI cache archive transfers are not included above
mbx[savings]: 15d 1h unspent across 18363 builds. compounding, in a sense.
##[endgroup]
##[group]test rs
sh/rs/select.sh test "$LIST"
rs: selecting bridge hang moq-audio moq-bench moq-boy moq-c moq-cli moq-ffi moq-gst moq-hls moq-mux moq-relay moq-room moq-rtmp moq-rtsp moq-shaper moq-srt moq-tokio moq-transcode moq-uring moq-video moq-webrtc 
KIO_DENY_HOST_TIMERS=1 CARGO_BUILD_WARNINGS=deny RUSTC_WORKSPACE_WRAPPER='/nix/store/4klbl675argl2irhl89zrh2n14wilzx9-rust-minimal-1.98.1/bin/clippy-driver' bash sh/rs/nextest.sh cargo nextest run --locked --tests "$@"
   Compiling moq-net v0.3.10 (/var/cache/github-runner-work/moq/moq/rs/moq-net)
   Compiling moq-shaper v0.0.1 (/var/cache/github-runner-work/moq/moq/rs/moq-shaper)
   Compiling moq-json v0.5.8 (/var/cache/github-runner-work/moq/moq/rs/moq-json)
   Compiling moq-crypto v0.0.11 (/var/cache/github-runner-work/moq/moq/rs/moq-crypto)
   Compiling moq-loc v0.2.19 (/var/cache/github-runner-work/moq/moq/rs/moq-loc)
   Compiling moq-archive v0.0.11 (/var/cache/github-runner-work/moq/moq/rs/moq-archive)
   Compiling moq-quic v0.1.0 (/var/cache/github-runner-work/moq/moq/rs/moq-quic)
   Compiling moq-auth v0.2.1 (/var/cache/github-runner-work/moq/moq/rs/moq-auth)
   Compiling hang v0.21.11 (/var/cache/github-runner-work/moq/moq/rs/hang)
   Compiling moq-stats v0.2.12 (/var/cache/github-runner-work/moq/moq/rs/moq-stats)
   Compiling qmux v0.7.0 (/var/cache/github-runner-work/moq/moq/rs/qmux)
   Compiling moq-uring v0.0.12 (/var/cache/github-runner-work/moq/moq/rs/moq-uring)
   Compiling moq-room v0.2.11 (/var/cache/github-runner-work/moq/moq/rs/moq-room)
   Compiling moq-mux v0.10.11 (/var/cache/github-runner-work/moq/moq/rs/moq-mux)
   Compiling moq-tokio v0.19.23 (/var/cache/github-runner-work/moq/moq/rs/moq-tokio)
   Compiling moq-video v0.1.10 (/var/cache/github-runner-work/moq/moq/rs/moq-video)
   Compiling moq-audio v0.1.10 (/var/cache/github-runner-work/moq/moq/rs/moq-audio)
   Compiling moq-hls v0.5.11 (/var/cache/github-runner-work/moq/moq/rs/moq-hls)
   Compiling moq-rtmp v0.3.11 (/var/cache/github-runner-work/moq/moq/rs/moq-rtmp)
   Compiling moq-srt v0.3.11 (/var/cache/github-runner-work/moq/moq/rs/moq-srt)
   Compiling moq-relay v0.17.2 (/var/cache/github-runner-work/moq/moq/rs/moq-relay)
   Compiling moq-rtsp v0.1.0 (/var/cache/github-runner-work/moq/moq/rs/moq-rtsp)
   Compiling moq-webrtc v0.3.12 (/var/cache/github-runner-work/moq/moq/rs/moq-webrtc)
   Compiling moq-gst v0.4.12 (/var/cache/github-runner-work/moq/moq/rs/moq-gst)
   Compiling moq-transcode v0.1.10 (/var/cache/github-runner-work/moq/moq/rs/moq-transcode)
   Compiling moq-carla-bridge v0.1.0 (/var/cache/github-runner-work/moq/moq/demo/carla/bridge)
   Compiling moq-cli v0.14.2 (/var/cache/github-runner-work/moq/moq/rs/moq-cli)
   Compiling moq-c v0.7.0 (/var/cache/github-runner-work/moq/moq/rs/moq-c)
   Compiling moq-boy v0.5.12 (/var/cache/github-runner-work/moq/moq/rs/moq-boy)
error: recipe `test-changed` was terminated on line 92 by signal 15
sh/dispatch.sh: line 350: wait: pid 2466522 is not a child of this shell
##[endgroup]
##[error]ci: test js failed
ci: wall and CPU seconds per module
   213     266  check rs
   184       0  test rs (cancelled)
    12      41  check biome
   314     633  check js
    71      76  test js (failed)
    71      88  check flake
     0       0  check drill
    44      40  check shell
     1       0  check large_files
     1       0  check text
     4       0  check toml
     2       0  check nix
     1       0  check justfile
   398    1149  whole run
error: recipe `ci` failed on line 119 with exit code 1
##[error]Process completed with exit code 1.
##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9
with:
  name: cargo-timings
  path: target/cargo-timings/cargo-timing-*.html
  if-no-files-found: ignore
  retention-days: 14
  compression-level: 6
  overwrite: false
  include-hidden-files: false
  archive: true
env:
  BASE: 114b14fb607050a7c6161ce54a2070812a333091
  CHECK_FAIL_FAST: 1
  NEXTEST_TEST_THREADS: 24
  MBX_CACHE_LINKS: 1
  MBX_REMOTE_URL: 
##[endgroup]
With the provided path, there will be 2 files uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: cargo-timings.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 176687
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is b2859c2e988e4a854d2fadd3da7414b5739577ac9ee45e29327bd3e9105d5806
Finalizing artifact upload
Artifact cargo-timings successfully finalized. Artifact ID 13821428187
Artifact cargo-timings has been successfully uploaded! Final size is 176687 bytes. Artifact ID is 13821428187
Artifact download URL: https://github.com/moq-dev/moq/actions/runs/42943199053/artifacts/13821428187
Post job cleanup.
##[start-action display=Run jdx/mr-boxington-action@88acf2bb50552c7c508cbac13e5f8c576b95b1de;id=__08af3798-65d1-4ad1-9f18-52f941c570ca.mbx]
##[end-action id=__08af3798-65d1-4ad1-9f18-52f941c570ca.mbx;outcome=skipped;conclusion=skipped;duration_ms=0]
Post job cleanup.
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git version
git version 2.55.0
Temporarily overriding HOME='/var/cache/github-runner-work/_temp/2437cb9a-4b8b-4768-9fe4-06b9bf73eba0' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --global --add safe.directory /var/cache/github-runner-work/moq/moq
Removing SSH command configuration
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
A job completed hook has been configured by the self-hosted runner administrator
##[group]Run '/nix/store/gx2v6q84b0w43bafm0whkdx93qyxbpps-ci-cache-gc.sh/bin/ci-cache-gc.sh'
shell: /nix/store/1mv3qz005gkbalxfghk4y3s8ayv4d2dl-bash-interactive-5.3p15/bin/bash --noprofile --norc -e -o pipefail {0}
##[endgroup]
evicted 2 objects and 0 action results (82.6 MiB logical); 50.0 GiB logical remain
removed 1 target directories (28.4 GiB logical, 0 abandoned and 1 live); 0 B logical remain
Cleaning up orphan processes

(written by quest land watch)

@moq-bot

moq-bot Bot commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

codex, gpt-6.1-sol, medium effort land fixer note:

The PR only moves the congestion profile and updates its references; no evidence links it to the failing connection test. Queue log lines 5812 and 5825 report:

error: a timer fired on the host clock: install a Manual clock or await the event, or call hostTime()
(fail) abort race never returns a closed connection [114.86ms]

The focused test passed on the scratch merge with the clock guard enabled. Full validation was attempted with nix develop --no-update-lock-file --command just ci base, but the required NixOS VM checks cannot run because /dev/kvm is missing. No PR files or branches were changed.

The completed gate passed Rust checks and all 7,665 selected Rust tests (115 skipped), JavaScript checks/builds/tests, audio-quality validation, Markdown, workflow checks/tests, and the other lint modules. Its only failing module was the KVM-dependent flake check.

(written by codex, gpt-6.1-sol, medium effort)

@moq-bot

moq-bot Bot commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

codex, gpt-6.1-sol, medium effort land fixer: nix develop --no-update-lock-file --command just ci base cannot complete required validation: ci: flake's NixOS VM tests need KVM, but /dev/kvm is missing. Recommendation: Rerun just ci base on a KVM-enabled runner; investigate the unrelated host-clock timer failure if it recurs.

@moq/net test: 25 | 				ready();
@moq/net test: 26 | 				// Thrown from the host callback, so the test running now fails.
@moq/net test: 27 | 				if (armed !== undefined && owner === guard.test && !owner?.real && timer !== undefined) {
@moq/net test: 28 | 					throw new Error(
@moq/net test: 29 | 						`a timer fired on the host clock: install a Manual clock or await the event, or call hostTime()\n${armed}`,
@moq/net test: 30 | 					);
@moq/net test:           ^
@moq/net test: error: a timer fired on the host clock: install a Manual clock or await the event, or call hostTime()
@moq/net test: Error: armed
@moq/net test:     at arm (/var/cache/github-runner-work/moq/moq/js/clock/src/host.ts:17:44)
@moq/net test:     at <anonymous> (/var/cache/github-runner-work/moq/moq/js/clock/src/timer.ts:30:18)
@moq/net test:     at new Promise (native:1:11)
@moq/net test:     at wait (/var/cache/github-runner-work/moq/moq/js/clock/src/timer.ts:15:22)
@moq/net test:     at sleep (/var/cache/github-runner-work/moq/moq/js/clock/src/timer.ts:49:9)
@moq/net test:     at connectTransport (/var/cache/github-runner-work/moq/moq/js/net/src/connection/connect.ts:614:45)
@moq/net test:     at async connectInner (/var/cache/github-runner-work/moq/moq/js/net/src/connection/connect.ts:486:17)
@moq/net test:     at processTicksAndRejections (native:7:39)
@moq/net test:       at check (/var/cache/github-runner-work/moq/moq/js/clock/src/host.ts:30:6)
@moq/net test: 
@moq/net test: ::error file=js/clock/src/host.ts,line=30,col=6,title=error: a timer fired on the host clock%3A install a Manual clock or await the event%2C or call hostTime()::    at arm (/var/cache/github-runner-work/moq/moq/js/clock/src/host.ts:17:44)%0A    at <anonymous> (/var/cache/github-runner-work/moq/moq/js/clock/src/timer.ts:30:18)%0A    at new Promise (native:1:11)%0A    at wait (/var/cache/github-runner-work/moq/moq/js/clock/src/timer.ts:15:22)%0A    at sleep (/var/cache/github-runner-work/moq/moq/js/clock/src/timer.ts:49:9)%0A    at connectTransport (/var/cache/github-runner-work/moq/moq/js/net/src/connection/connect.ts:614:45)%0A    at async connectInner (/var/cache/github-runner-work/moq/moq/js/net/src/connection/connect.ts:486:17)%0A    at processTicksAndRejections (native:7:39)%0A      at check (/var/cache/github-runner-work/moq/moq/js/clock/src/host.ts:30:6)
@moq/net test: (fail) abort race never returns a closed connection [114.86ms]

(written by codex, gpt-6.1-sol, medium effort)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Duplicate of #8486, which makes the same fix and was opened first. Closing on the maintainer's pick.

(Written by Opus 5.5 with medium)

@kixelated kixelated closed this Nov 11, 2026
@kixelated
kixelated deleted the fix/congestion-profile branch November 11, 2026 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant