From 6b51a19a243a8ffd0e2eccf6c1d5720c01acaff5 Mon Sep 17 00:00:00 2001 From: MarcZX10 <67475268+MarcZX10@users.noreply.github.com> Date: Sun, 25 Oct 2026 11:23:40 +0000 Subject: [PATCH] ci: list the known failures of the sanitizer run Add .github/sanitizer-known-failures.txt, one test per line with the sanitizers it fails under and the reason, for the tests that fail in an ASan and UBSan build of main: stack switches that ASan is not told about (fiber, guest_user_context), tests whose setup conflicts with ASan (guest_getrlimit, guest_pthread_stack, guest_backtrace), undefined behavior in third-party code (LibAtrac9, libvorbis), and bugs whose fixes are open pull requests (#9548, #9710, #9711, #10829, #10921) or still to be sent. Each reason quotes what the sanitizer or the test reports on a local run. --- .github/sanitizer-known-failures.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/sanitizer-known-failures.txt diff --git a/.github/sanitizer-known-failures.txt b/.github/sanitizer-known-failures.txt new file mode 100644 index 0000000000..ffc0ac1481 --- /dev/null +++ b/.github/sanitizer-known-failures.txt @@ -0,0 +1,18 @@ +agc_driver_graphics undefined The ASan build's CopyGuestBytes in Execution/src/GuestMemory.cpp loads guest words through a misaligned volatile const uint64_t pointer (UBSan alignment check); a fix is pending. +agc_driver_graphics_maps_fallback undefined The ASan build's CopyGuestBytes in Execution/src/GuestMemory.cpp loads guest words through a misaligned volatile const uint64_t pointer (UBSan alignment check); a fix is pending. +agc_driver_pm4 undefined The ASan build's CopyGuestBytes in Execution/src/GuestMemory.cpp loads guest words through a misaligned volatile const uint64_t pointer (UBSan alignment check); a fix is pending. +atrac9_config_data undefined LibAtrac9's BitReverse32 shifts a 32-bit value by 32 (3rdparty/LibAtrac9/C/src/utility.c:14); #9548 guards the shift. +atrac9_gradient address,undefined atrac9_gradient_tests does not link in an ANYPS5_ENABLE_ASAN build ('undefined reference to symbol pow'), so ctest reports it as not run; #9710 links it with libm. +fiber address ASan reports a stack-buffer-underflow in _sceFiberInitializeWithInternalOptionImpl on fiber stack memory that earlier guest frames left poisoned; ASan is not told about the switches between fiber stacks. +guest_ajm undefined LibAtrac9's BitReverse32 shifts a 32-bit value by 32 (3rdparty/LibAtrac9/C/src/utility.c:14); #9548 guards the shift. +guest_audiodec undefined LibAtrac9's BitReverse32 shifts a 32-bit value by 32 (3rdparty/LibAtrac9/C/src/utility.c:14); #9548 guards the shift. +guest_backtrace address Fails only in ASan builds, with 'guest backtrace: first frame is not in the calling module'. +guest_convert_keycode undefined LookUp in libSceConvertKeycode/ImeKeyboardType.hpp subtracts 16 from an INT32_MIN keyboard type (signed integer overflow); a fix is pending. +guest_getrlimit address The test lowers RLIMIT_DATA to 1 TiB, below the private memory ASan has already mapped, so ASan's next internal mapping fails with ENOMEM ('failed to allocate ... DTLS_NextBlock'). +guest_pthread_stack address Aborts only in ASan builds, when the worker writes its marker 4096 bytes below the top of its own running stack. +guest_sce_v2_exceptions address The test's inspection hook copies 16 bytes of an 8-byte exception object (heap-buffer-overflow); #10829 fixes the test. +guest_system_configuration undefined The sysctl copy-out calls memcpy with a null source for kern.proc.env; #10921 fixes it. +guest_user_context address setcontext switches to a stack ASan does not know; ASan ignores __asan_handle_no_return there and reports a stack-buffer-overflow in setcontext_nid_postfix. +guest_vorbis_dec undefined The bundled libvorbis left-shifts a negative value (3rdparty/vorbis/lib/psy.c:319); third-party code. +input_magic address Its large-input case runs the relinker under a 512 MiB RLIMIT_AS, where an ASan relinker cannot start; #9711 bounds the input with ASan's allocation cap instead. +ngs2_atrac9 undefined LibAtrac9's BitReverse32 shifts a 32-bit value by 32 (3rdparty/LibAtrac9/C/src/utility.c:14); #9548 guards the shift.