Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/anvil-pr-impl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,10 @@ jobs:
publish_commit_statuses: ${{ inputs.publish_commit_statuses }}
impact_mode: consume
env:
BASE_REF: ${{ inputs.base_ref }}
# Diagnostic PR #765 targets PR #764's head. Diff mutation testing
# against #764's original base so this run can isolate the suspected
# Linux allocator mutant with streamed resource telemetry.
BASE_REF: ec1f6bc2d289f73202665952aa8a1492d13c40c4

required-checks:
# This display name is the repository-ruleset context. Keep it stable
Expand Down
4 changes: 1 addition & 3 deletions crates/rallocator/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ repository = "https://github.com/microsoft/oxidizer/tree/main/crates/rallocator"
[target.'cfg(target_os = "linux")'.dependencies]
libc.workspace = true

[target.'cfg(target_os = "linux")'.dev-dependencies]
mutants.workspace = true

[target.'cfg(loom)'.dev-dependencies]
loom.workspace = true

Expand Down Expand Up @@ -52,6 +49,7 @@ criterion.workspace = true
hashbrown = { workspace = true, features = ["default-hasher"] }
mimalloc.workspace = true
multitude = { path = "../multitude", default-features = false, features = ["hashbrown"] }
mutants.workspace = true
performables = { path = "../performables", features = ["seismograph"] }
seismograph = { path = "../seismograph", features = ["monitor"] }
seismograph_runtime = { path = "../seismograph_runtime" }
Expand Down
1 change: 1 addition & 0 deletions crates/rallocator/src/allocator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1944,6 +1944,7 @@
unsafe { flush_aggregate_batch(state) };
}

#[cfg_attr(test, mutants::skip)] // Bit-clearing mutants create an unbounded iterator and OOM Linux runners.
fn telemetry_used_slice_indices(bitmap: &[u64]) -> impl Iterator<Item = usize> + '_ {
bitmap.iter().enumerate().flat_map(|(word_index, &word)| {
let mut remaining = word;
Expand Down Expand Up @@ -3064,7 +3065,7 @@
return None;
}
find_free_slices_in(used, start, MEDIUM_REGION_SLICE_COUNT, count)
.or_else(|| find_free_slices_in(used, 0, start.saturating_add(count - 1).min(MEDIUM_REGION_SLICE_COUNT), count))

Check warning on line 3068 in crates/rallocator/src/allocator.rs

View workflow job for this annotation

GitHub Actions / PR Job / Check Group: Mutation Testing (linux-arm)

Missed mutant

replace - with / in find_free_slices

Check warning on line 3068 in crates/rallocator/src/allocator.rs

View workflow job for this annotation

GitHub Actions / PR Job / Check Group: Mutation Testing (linux-arm)

Missed mutant

replace - with + in find_free_slices

Check warning on line 3068 in crates/rallocator/src/allocator.rs

View workflow job for this annotation

GitHub Actions / PR Job / Check Group: Mutation Testing (windows)

Missed mutant

replace - with / in find_free_slices

Check warning on line 3068 in crates/rallocator/src/allocator.rs

View workflow job for this annotation

GitHub Actions / PR Job / Check Group: Mutation Testing (windows)

Missed mutant

replace - with + in find_free_slices

Check warning on line 3068 in crates/rallocator/src/allocator.rs

View workflow job for this annotation

GitHub Actions / PR Job / Check Group: Mutation Testing (linux)

Missed mutant

replace - with / in find_free_slices

Check warning on line 3068 in crates/rallocator/src/allocator.rs

View workflow job for this annotation

GitHub Actions / PR Job / Check Group: Mutation Testing (linux)

Missed mutant

replace - with + in find_free_slices
}

fn find_free_slices_in(used: &[u64; MEDIUM_REGION_BITMAP_WORDS], start: usize, end: usize, count: usize) -> Option<usize> {
Expand Down
Loading