Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-143750: Compile OpenSSL with TSan for TSan CI#143752

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
colesbury wants to merge4 commits intopython:main
base:main
Choose a base branch
Loading
fromcolesbury:gh-143750-openssl-tsan

Conversation

@colesbury
Copy link
Contributor

@colesburycolesbury commentedJan 12, 2026
edited by bedevere-appbot
Loading

Also fix "Install dependencies" step so that we use the installed Clang. We can use clang-20 on both TSan and UBSan now.

- Also fix "Install dependencies" step so that we use the installed Clang.  We can use clang-20 on both ASan and TSan now.
@colesburycolesbury added testsTests in the Lib/test dir topic-SSL labelsJan 12, 2026
Copy link
Member

@webknjazwebknjaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

(early GHA feedback)

Comment on lines +26 to +31
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
openssl_ver: [3.5.4]
runs-on: ${{ matrix.os }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Plz move these toinputs: and host the matrix on the calling side (inbuild.yml). This is the separation I was going for when I first introduced thereusable-*.yml module pattern — no matrices in modules.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This is a convenient way to define a variable that's reused a few times in the workflow. It could be anenv, but it's not actually needed in the environment.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I know. I designed the modular approach with consistency in mind (which includes only allowing matrices on the top level). Having a matrix in reusable workflows sometimes has awkward side effects in a few places on GH, which I'd rather we avoid.

FWIW, you can use inputs with default values the same way — for var declarations — just a bit more verbosely. Although, I'd argue that being able to fill out descriptions for the inputs would be beneficial by making the purpose documented explicitly.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

It could be anenv, but it's not actually needed in the environment.

I noticed you're settingOPENSSL_VER already so it's already in there.

And I know that foros, people in other PRs were unhappy to see it in the matrix 🤷‍♂️
Actually, in#136729 (comment), Hugo suggested usingenv.IMAGE_OS_VERSION /${IMAGE_OS_VERSION} in the steps, making the matrix entry redundant.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Another reason for usingenv is that it'll trip Zizmor checks — they are probably suppressed right now but once re-enabled, we'll need to deal with the interpolation on GHA vs. Bash level.

I'll need to work on migrating everything to env vars at some point and making sure Zizmor enforces that.

Comment on lines 23 to 25
&& ' (free-threading)'
|| ''
}}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This will also need to interpolate new matrix factors since the job names will be confusing if there's ever more than one job.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

There's the same jobs as before. The TSan ones just now compile OpenSSL with TSan

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Right, so there shouldn't be a matrix, then:#143752 (comment)

Comment on lines 58 to 59
run: |
if [ "${SANITIZER}" = "TSan" ]; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

We can move this conditional to the GHA step so that skipping is more prominent.

Suggested change
run:|
if [ "${SANITIZER}" = "TSan" ]; then
if:inputs.sanitizer == 'TSan'
run:|

Also dropfi and the second conditional block below too.

Copy link
ContributorAuthor

@colesburycolesburyJan 20, 2026
edited by webknjaz
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I merged the if blocks, but you can't lift the conditional the GHA step because you still need the:

elseecho"UBSAN_OPTIONS=${SAN_LOG_OPTION}">>"$GITHUB_ENV"fi

and the unconditional

echo"CC=clang">>"$GITHUB_ENV"echo"CXX=clang++">>"$GITHUB_ENV"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

@colesbury what I'd recommend is splitting these into two steps so that it'd be possible to move the conditional and it'd be prominent in the log. Alternatively, it might make sense to just moveCC andCXX into the declarative per-stepenv: since they aren't computed dynamically anyway. Though, looking more into it, it sound like they probably belong in theInstall dependencies which makesclang available and is already setting up the env to use it — just like these env vars.

colesburyand others added2 commitsJanuary 20, 2026 12:32
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@webknjazwebknjazwebknjaz left review comments

@gpsheadgpsheadAwaiting requested review from gpsheadgpshead will be requested when the pull request is marked ready for reviewgpshead is a code owner

@picnixzpicnixzAwaiting requested review from picnixzpicnixz will be requested when the pull request is marked ready for reviewpicnixz is a code owner

@ezio-melottiezio-melottiAwaiting requested review from ezio-melottiezio-melotti will be requested when the pull request is marked ready for reviewezio-melotti is a code owner

@hugovkhugovkAwaiting requested review from hugovkhugovk will be requested when the pull request is marked ready for reviewhugovk is a code owner

@AA-TurnerAA-TurnerAwaiting requested review from AA-TurnerAA-Turner will be requested when the pull request is marked ready for reviewAA-Turner is a code owner

Assignees

No one assigned

Labels

skip newstestsTests in the Lib/test dirtopic-SSL

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

@colesbury@webknjaz

[8]ページ先頭

©2009-2026 Movatter.jp