Skip to content

SIGUSR1 leak-only sanitizer output is classified as a hard failure #968

Description

@Nitjsefnie

Describe the bug
On current main, the multithreaded SIGUSR1 sanitizer subtest records normal ASan-integrated leak-only output as FAIL: sigusr1-mt: ASan/UBSan report on stderr instead of accepting it as the tolerated leak case. The same output contains both ERROR: LeakSanitizer: detected memory leaks and the standard SUMMARY: AddressSanitizer: line, and the tolerated result is never observed for that report shape.

This is distinct from #945/#953, which covered tests/test_doc_examples.py. It was discovered during an independent review of unfiled sanitizer test-harness findings on 2026-08-18.

To reproduce
From the repository root, replay the current predicates with representative ASan+LSan output:

err=$(mktemp)
printf '%s\n' \
  'ERROR: LeakSanitizer: detected memory leaks' \
  'SUMMARY: AddressSanitizer: 16 byte(s) leaked in 1 allocation(s).' >"$err"

if grep -qE 'AddressSanitizer|runtime error:' "$err"; then
  echo 'hard failure'
elif grep -q 'LeakSanitizer: detected memory leaks' "$err"; then
  echo 'tolerated leak'
fi

The command prints hard failure.

Expected behavior
Leak-only output from the repository's ASan build is accepted by the explicit LeakSanitizer tolerance path. Actual ASan or UBSan errors still fail the subtest.

Actual behavior
The leak-only report is classified as an ASan/UBSan failure before the LeakSanitizer tolerance result can be selected.

Environment

  • OS: Linux; the classification is shell/grep control flow and is not architecture-specific
  • GCC version: not applicable; the minimal reproduction does not compile the project
  • EigenScript version: main at a916975b765581b6c531174ba28a67a05d5c277f

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions