Skip to content

2.35.6

  • 2.35.6
  • 827a26d
  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
  • Choose a tag to compare

  • 2.35.6
  • 827a26d
  • Choose a tag to compare

  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
@dylanjew dylanjew tagged this 03 Aug 18:05
b/538558303

_Note: this PR is chained with
https://github.com/google/clusterfuzz/pull/5394_

### Problem
When a preemption occurs, we were only recording the duration of the
active fuzzing round as wasted time. If a task is preempted mid-way, all
previous successful rounds in that same task are also completely wasted
since the task never reaches postprocess. This leads to a significant
underestimation of wasted time.

### Proposed Solution
Enhanced time tracking to capture the waste across the entire fuzzing
session while maintaining metric accuracy.

- Added `FUZZER_PREEMPTED_TOTAL_FUZZ_TIME` and
`JOB_PREEMPTED_TOTAL_FUZZ_TIME` metrics to `monitoring_metrics.py`.
- Enhanced `_TrackFuzzTime` in `fuzz_task.py` to track accumulated
wasted time across all rounds of a session (`_accumulated_wasted_time`).
- Upon preemption, the callback now emits the Total Accumulated Session
Time (Current Round + Previous Rounds) to `preempted_total_time`.
- To fix subtraction math in dashboards, the callback also emits the
duration of the interrupted round only to `total_time`, ensuring it
reflects the attempted time without gaps.
- Added `tracker.preempted` flag to skip metric emission in `__exit__`
for interrupted rounds and avoid double counting.

### Validation
Validated in dev environment.

<img width="1200" height="400" alt="image"
src="https://github.com/user-attachments/assets/64f39315-5ca6-4b4c-830b-428f0661792a"
/>

<img width="200" height="300" alt="image"
src="https://github.com/user-attachments/assets/96bd42ac-23af-4ac4-8d80-da4b09fdeb88"
/>
Assets 2
Loading