Skip to content

Hold logrotate and dpkg-db-backup for the runner's job lock - #1490

Open
epompeii wants to merge 2 commits into
develfrom
u/ep/runner-quiet-maintenance
Open

epompeii wants to merge 2 commits into
develfrom
u/ep/runner-quiet-maintenance

Conversation

@epompeii

Copy link
Copy Markdown
Member

logrotate.timer and dpkg-db-backup.timer fire daily at midnight and can run during a Job. The cpuset partition keeps their CPU work off the benchmark cores, but their disk I/O and page cache churn reach the same disks that the guest drives write back to.

This adds logrotate.service and dpkg-db-backup.service to QUIET_UNITS in runner_ops, so cargo ops host writes the same zz-bencher-quiet.conf drop-in for each, and audit checks that each unit's own ExecStart= is still the command the drop-in restates. Each unit then waits for the runner's current Job under the job lock, and the runner takes no Job while the unit waits or runs.

Checked under systemd 255 on Ubuntu 24.04: with the job lock held, each unit stays in activating with its marker in /run/bencher. The sandbox of logrotate.service (ProtectSystem=full, PrivateDevices=true, and the others) does not get in the way: fd 3 is /dev/null and fd 4 holds the lock. Once the lock is free, each unit runs to success and removes its marker.

Both timers fire daily at midnight and can run during a Job. The cpuset
partition keeps their CPU work off the benchmark cores, but their disk
I/O and page cache churn reach the same disks that the guest drives
write back to.

Add both units to the maintenance drop-ins, so each waits for the
runner's current Job under the job lock, and the runner takes no Job
while the unit waits or runs.
@github-actions

github-actions Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

🐰 Bencher Report

ProjectBencher
Branchu/ep/runner-quiet-maintenance
Testbedintel-v1
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
microseconds (µs)
(Result Δ%)
Upper Boundary
microseconds (µs)
(Limit %)
Adapter::Json📈 view plot
🚷 view threshold
5.14 µs
(-0.81%)Baseline: 5.19 µs
5.41 µs
(95.14%)
Adapter::Magic (JSON)📈 view plot
🚷 view threshold
4.97 µs
(-1.08%)Baseline: 5.02 µs
5.23 µs
(94.95%)
Adapter::Magic (Rust)📈 view plot
🚷 view threshold
26.25 µs
(-2.17%)Baseline: 26.83 µs
28.64 µs
(91.63%)
Adapter::Rust📈 view plot
🚷 view threshold
4.42 µs
(-0.85%)Baseline: 4.46 µs
4.59 µs
(96.20%)
Adapter::RustBench📈 view plot
🚷 view threshold
4.44 µs
(-0.24%)Baseline: 4.45 µs
4.58 µs
(96.83%)
🐰 View full continuous benchmarking report in Bencher

They are not masked, as fstrim and the RAID units are not, so they stay
in the list of unmasked units.
@epompeii
epompeii marked this pull request as ready for review November 14, 2026 13:56
@epompeii
epompeii added this pull request to stack #1496 November 14, 2026 13:57

This branch has not been deployed

No deployments
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