Skip to content

Defer Blackbox Fuzzer Log Uploads#5378

Draft
IvanBM18 wants to merge 2 commits into
refactor/extract-temp-filefrom
refactor/bb-logs-defer-upload
Draft

Defer Blackbox Fuzzer Log Uploads#5378
IvanBM18 wants to merge 2 commits into
refactor/extract-temp-filefrom
refactor/bb-logs-defer-upload

Conversation

@IvanBM18

@IvanBM18 IvanBM18 commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

WIP PR

Bug: b/532610906

Context

Overview

This is the last PR to tackle an instance of PERMISSION_DENIED issues when executing a BlackBox test case in a uworker bot.

This PR refactors uses the utils, classes and refactors to previous PRs to defer the blackbox fuzzer log upload to the posprocess step. Since the blackbox fuzzer logs can be larger than regular Coverage guided engine fuzzer logs, we cant just simply save its content into the crash queue, instead we save the fuzzer output into a temp file and we save that file in the crashes queue.

Then when we finish executing all the test cases(which can be multiple concurrent ones), we drain the crash queue, retrieving the log file paths and transforming them into an istance of FuzzerRunOutputData class, which is then placed into the fuzzer ssesion output to be handled & uploaded at the postprocess step

Changes

  • Fuzzer log for BB fuzzer are now saved into temp files instead of the actual string
    • This is done because we use a special type of queue to handle multiple concurrent fuzzing outputs, this queue has a hard limit on the amount of data that it can handle,
      • So if a single fuzzer uploads to much info then the queue will block operations until someone pulls data from the queue
      • if we have a job that runs multiple test cases simultaneously & a fuzzer that logs too much info we can end up in a livelock multithreading problem
  • Creates a new method to drain the queue for multiple crash results
    • Encapsulates the fuzzer logs from the queue using the FuzzerRunOutputData
  • Since we no longer upload the logs at the utask_main portion, we deleted the upload parameter for the run_tetcase method

Tests performed

Changes in dev since July 23rd, from which we can see how the errors dramastically went down after the changes were introduced:

The other 403 issues that still appear in dev are, from custom_binary tests being performed by teammates in dev, if we remove those logs, we can see how the errors go to 0
image

PR stack

PR #5376: Introduce FuzzerRunOutputData and utils (Base: master)
PR #5377: Refactor _to_fuzzer_run_output to use FuzzerRunOutputData (Base: PR 1)
PR #5388: refactor: Add utils.create_temp_file helper (Base: PR 2)
Current -> PR #5378: Defer Blackbox Fuzzer Log Uploads (Base: PR 3)

@IvanBM18
IvanBM18 force-pushed the refactor/bb-logs-to-fuzzer-run-output branch from d9ee0b3 to cf5e5ff Compare July 23, 2026 17:52
@IvanBM18
IvanBM18 force-pushed the refactor/bb-logs-defer-upload branch from 9d7cd43 to 7d307ec Compare July 23, 2026 17:54
@IvanBM18
IvanBM18 force-pushed the refactor/bb-logs-defer-upload branch from 7d307ec to e86a335 Compare July 23, 2026 21:10
@IvanBM18
IvanBM18 changed the base branch from refactor/bb-logs-to-fuzzer-run-output to refactor/extract-temp-file July 23, 2026 21:11
@IvanBM18
IvanBM18 force-pushed the refactor/extract-temp-file branch from 6e381e8 to 6adb4c5 Compare July 23, 2026 21:20
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