The new test_device_mknod_failure_is_per_entry drops euid to make the mknodat EPERM path deterministic. A setuid transition clears the process dumpable flag (even after restoring euid), which makes LeakSanitizer's ptrace-based thread suspension fail at exit — the dev-push sanitizers (address) job failed with LeakSanitizer has encountered a fatal error ... does not work under ptrace. Restore the flag with prctl(PR_SET_DUMPABLE, 1) after the test restores euid.
Verified locally: ASan unit tests now exit 0 with leak detection enabled (previously exit 1); UBSan clean.
The new `test_device_mknod_failure_is_per_entry` drops `euid` to make the `mknodat` EPERM path deterministic. A setuid transition clears the process **dumpable** flag (even after restoring euid), which makes LeakSanitizer's ptrace-based thread suspension fail at exit — the dev-push `sanitizers (address)` job failed with `LeakSanitizer has encountered a fatal error ... does not work under ptrace`. Restore the flag with `prctl(PR_SET_DUMPABLE, 1)` after the test restores euid.
Verified locally: ASan unit tests now exit 0 with leak detection enabled (previously exit 1); UBSan clean.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The new
test_device_mknod_failure_is_per_entrydropseuidto make themknodatEPERM path deterministic. A setuid transition clears the process dumpable flag (even after restoring euid), which makes LeakSanitizer's ptrace-based thread suspension fail at exit — the dev-pushsanitizers (address)job failed withLeakSanitizer has encountered a fatal error ... does not work under ptrace. Restore the flag withprctl(PR_SET_DUMPABLE, 1)after the test restores euid.Verified locally: ASan unit tests now exit 0 with leak detection enabled (previously exit 1); UBSan clean.