gh-111758: Run UBSan in GitHub Actions#135578
Conversation
hugovk
left a comment
There was a problem hiding this comment.
There's a lot of duplicate boilerplate in reusable-tsan.yml and reusable-ubsan.yml, we can combine them into a single reusable workflow, and reduce future maintenance.
Something like this: hugovk@39f6c91
Note this is from this morning, and doesn't include your three recent commits.
I'm also happy to do this in a followup if you prefer.
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Yes, I think it's better as a follow-up. Maybe in a week or so, to let the job settle down? It's easier to edit an independent copy :) |
| uses: actions/cache@v4 | ||
| with: | ||
| path: config.cache | ||
| key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }} |
There was a problem hiding this comment.
I think the configure failure:
https://github.com/python/cpython/actions/runs/15706865183/job/44254688889?pr=135578
is because this key is identical to the one in reusable-tsan.yml, so let's add ubsan or something in here:
| key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }} | |
| key: ${{ github.job }}-ubsan-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }} |
There was a problem hiding this comment.
ubsan is part of github.job. It's using a cache from before I added the latest commits.
I removed that cache and will restart the job. (GitHub will allow that after all the other ones finish).
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
This adds a
--with-undefined-behavior-sanitizerCI run, modeled after the TSan one.The runtime should be less than 13 minutes, well below Windows runs.