Skip to content

Add pip req arm64 - #5468

Open
JuanMBriones wants to merge 3 commits into
mac_arm64_coverage_guided_fuzzers_support_extra_depsfrom
add_pip_req_arm64
Open

Add pip req arm64#5468
JuanMBriones wants to merge 3 commits into
mac_arm64_coverage_guided_fuzzers_support_extra_depsfrom
add_pip_req_arm64

Conversation

@JuanMBriones

Copy link
Copy Markdown
Contributor

No description provided.

notvictorl and others added 3 commits September 9, 2026 13:40
Previously, `stack_symbolizer` bypassed symbolization on Windows,
assuming Windows Clang ASan would provide provide symbolized stack
traces through an online symbolizer. However, Windows Clang ASan's
online symbolizer is flaky and could fail to restart the symbolizer.

Chrome archives provide a `llvm-symbolizer.exe` for use but it's ignored
in favor of online symbolizer on windows and tools extraction was not supported. ClusterFuzz also includes an
`llvm-symbolizer.exe` but this acts as a fallback if one is not included
or `USE_DEFAULT_LLVM_SYMBOLIZER = True`.

Switches to offline symbolization for windows and updates
`llvm-symbolizer.exe` tooling for Windows to LLVM 24. Adds support for
extracting `llvm-symbolizer.exe` as a common file on
`ChromeBuildArchive`s. Adds documentation for updating symbolizer
binaries and adds unit testing that symbolization is performed on
Windows.

Tested that the changes don't crash on dev by uploading a testcase:
https://gosst.development.clusterfuzz.com/testcase-detail/5136503223648256

b/552035861
…#5439)

Bug: b/545195031

Since Android API level 30(and all apps targeting android 11+), apps
have scoped storage access, and we can only give it external storage
permissions at runtime [by a user facing
dialog](https://developer.android.com/about/versions/11/privacy/storage#permissions-target-any).
To avoid this, we now copy the testcases to the app's external
app-specific storage , which is always readable by our app's package.

We didn't noticed this issues because all test cases execute using `am
start` which almost the 99% of the time returns no error codes, hence we
though that the test case executed but that is not the case.

Example for chrome: Previously, if we tried to execute our test case,
the app would tell us it can't find the file(because of the read
external storage permissions):
<img width="2498" height="1393" alt="image"
src="https://github.com/user-attachments/assets/f0054420-c6cd-4894-b642-29e1cc2904b9"
/>

But after this changes the html renders successfully!
<img width="2566" height="1589" alt="image"
src="https://github.com/user-attachments/assets/28e67cc6-b372-4d33-a070-c1f555bc4881"
/>


Learn more:
- https://developer.android.com/about/versions/11/privacy/storage
- https://developer.android.com/training/data-storage#scoped-storage

#### Alternative
- The other alternative is to serve the testcases html/js/css files
trough a simple localhost server trough `adb reverse tcp:8000 tcp:8000`,
this is what we usually do in regular chrome tests, clusterfuzz already
support's this, and this is controlled by the fuzzer, not by the job, if
the fuzzer testcases have the 'http' word in the filename then
clusterfuzz will serve them trough http, but i think nevertheless we
need to make this change to keep our options open for any case we don't
want to serve them trough http.

## Changes
- Always pushes files to this directory
`/sdcard/Android/data/{PKG_NAME}/files/` which is always reable by the
given app.
- Dynamically calculate the Test case directory based off the app's pkg
- no longer allows the job to override DEVICE_TESTCASES_DIR
- Now at fuzz session setup we clean from
`/sdcard/Android/data/{PKG_NAME}/files/*`.
Signed-off-by: Manuel Briones <manuelbriones@google.com>
@JuanMBriones
JuanMBriones added this pull request to stack #5469 September 11, 2026 19:47
@JuanMBriones
JuanMBriones requested a review from a team as a code owner September 11, 2026 19:47
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.

3 participants