Harden concurrency and resource lifecycle (#101)
Some checks failed
Native code generation / deterministic (push) Failing after 2m4s
Concurrency and resource soak audit / soak (push) Failing after 6m31s
Imaging and meshing gate / native (push) Failing after 2m52s
JPEG 2000 feature / linux (push) Successful in 2m45s
Release platform and feature matrix / audit (push) Successful in 35s
Native Rust workspace compile / compile (push) Failing after 54s
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Dependency and supply-chain audit / audit (push) Has been cancelled
Skia feature / linux (push) Has been cancelled
Some checks failed
Native code generation / deterministic (push) Failing after 2m4s
Concurrency and resource soak audit / soak (push) Failing after 6m31s
Imaging and meshing gate / native (push) Failing after 2m52s
JPEG 2000 feature / linux (push) Successful in 2m45s
Release platform and feature matrix / audit (push) Successful in 35s
Native Rust workspace compile / compile (push) Failing after 54s
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Dependency and supply-chain audit / audit (push) Has been cancelled
Skia feature / linux (push) Has been cancelled
This commit is contained in:
71
.gitea/workflows/concurrency-audit.yml
Normal file
71
.gitea/workflows/concurrency-audit.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
name: Concurrency and resource soak audit
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- ".gitea/workflows/concurrency-audit.yml"
|
||||
- "ci/concurrency-thresholds.json"
|
||||
- "tools/concurrency-audit/**"
|
||||
- "docs/concurrency-hardening.md"
|
||||
- "crates/libremetaverse/src/client_core.rs"
|
||||
- "crates/libremetaverse/src/download_manager.rs"
|
||||
- "crates/libremetaverse/src/appearance_manager.rs"
|
||||
- "crates/libremetaverse/src/asset_manager.rs"
|
||||
- "crates/libremetaverse/src/inventory_manager.rs"
|
||||
- "crates/libremetaverse-voice-webrtc/**"
|
||||
- "Cargo.toml"
|
||||
- "Cargo.lock"
|
||||
pull_request:
|
||||
paths:
|
||||
- ".gitea/workflows/concurrency-audit.yml"
|
||||
- "ci/concurrency-thresholds.json"
|
||||
- "tools/concurrency-audit/**"
|
||||
- "docs/concurrency-hardening.md"
|
||||
- "crates/libremetaverse/src/client_core.rs"
|
||||
- "crates/libremetaverse/src/download_manager.rs"
|
||||
- "crates/libremetaverse/src/appearance_manager.rs"
|
||||
- "crates/libremetaverse/src/asset_manager.rs"
|
||||
- "crates/libremetaverse/src/inventory_manager.rs"
|
||||
- "crates/libremetaverse-voice-webrtc/**"
|
||||
- "Cargo.toml"
|
||||
- "Cargo.lock"
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
CARGO_BUILD_JOBS: 1
|
||||
CARGO_INCREMENTAL: 0
|
||||
CARGO_PROFILE_DEV_DEBUG: 0
|
||||
CARGO_PROFILE_TEST_DEBUG: 0
|
||||
|
||||
jobs:
|
||||
soak:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: rustfmt, clippy
|
||||
- name: Install native voice prerequisite
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install --yes libopus-dev pkg-config
|
||||
- name: Check formatting and focused race regressions
|
||||
run: |
|
||||
cargo fmt --all -- --check
|
||||
cargo test --locked -p libremetaverse --lib shutdown_does_not_hold_service_registry_lock_across_callbacks -j 1
|
||||
cargo test --locked -p libremetaverse --lib event_registry_isolates_panics_and_releases_subscriptions -j 1
|
||||
cargo test --locked -p libremetaverse --lib dispatch_isolates_panics_and_does_not_retain_dropped_handlers -j 1
|
||||
cargo test --locked -p libremetaverse --test caps_http download_queue_applies_backpressure_and_cancellation_drains_every_job -j 1
|
||||
cargo test --locked -p libremetaverse-voice-webrtc concurrent_provisioning_admits_one_session_without_leaking_the_loser -j 1
|
||||
- name: Run bounded native soak
|
||||
run: |
|
||||
mkdir -p artifacts
|
||||
cargo run --locked -p metacrate-concurrency-audit -j 1 -- \
|
||||
--cycles 16 --evidence artifacts/concurrency-audit.json
|
||||
- name: Upload sanitized resource evidence
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: concurrency-audit-evidence
|
||||
path: artifacts/concurrency-audit.json
|
||||
if-no-files-found: error
|
||||
Reference in New Issue
Block a user