Skip to content

Treat fatal dynamic linker errors and exit 126/127 as bad builds in progression - #5587

Draft
hunsche wants to merge 1 commit into
google:masterfrom
hunsche:fix/progression-bad-build-linker-guard
Draft

hunsche wants to merge 1 commit into
google:masterfrom
hunsche:fix/progression-bad-build-linker-guard

Conversation

@hunsche

@hunsche hunsche commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Prevents progression_task from falsely marking open testcases as Fixed when a candidate build fails to start due to missing shared libraries or ABI symbol mismatches on the worker OS (e.g., during base OS migrations such as Ubuntu 24.04).

Details

  • Adds _is_fatal_execution_or_linker_failure to detect:
    • POSIX loader/execve failure exit codes (126 and 127), and
    • Fatal dynamic linker diagnostics (error while loading shared libraries:, cannot open shared object file, and GLIBC_ / GLIBCXX_ / CXXABI_ version not found errors), even after reproduce_with_retries normalizes the final CrashResult.return_code to 0.
  • Marks the revision's BuildData.is_bad_build = True and returns ErrorType.PROGRESSION_BAD_BUILD in both _testcase_reproduces_in_revision and _check_fixed_for_custom_binary instead of proceeding to _save_fixed_range.
  • Adds unit test coverage in progression_task_test.py.

This branch has not been deployed

No deployments
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