Skip to content

gh-136728: Combine OpenSSL and AWS-LC CI configurations#144805

Merged
hugovk merged 9 commits intopython:mainfrom
zware:bump_multissl_awslc
Mar 1, 2026
Merged

gh-136728: Combine OpenSSL and AWS-LC CI configurations#144805
hugovk merged 9 commits intopython:mainfrom
zware:bump_multissl_awslc

Conversation

@zware
Copy link
Member

@zware zware commented Feb 13, 2026

I accidentally started this before finding GH-143940, but given the somewhat different approach I figured it was worth sharing anyway. If we prefer the GH-143940 approach, this can just be closed.

@zware zware added tests Tests in the Lib/test dir topic-SSL infra CI, GitHub Actions, buildbots, Dependabot, etc. type-refactor Code refactoring (with no changes in behavior) labels Feb 13, 2026
Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

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

Yeah, this approach also looks fine by me :)

Collapse matrix entries into more concise one line each.
Remove obsolete OpenSSL 1.1.1w; AWS-LC is roughly 1.1.1-shaped and
exercises the relevant APIs.
Remove AWS-LC 1.55.0; just test the single latest version.
Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

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

Thanks both!

ssllib:
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
## OpenSSL
- { name: openssl, version: 3.0.19 }
Copy link
Member

Choose a reason for hiding this comment

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

Nested objects in the matrix generally cause difficulties. So yes, that other PR solves this bit better. I understand the desire to couple libs with their versions and it might be reasonable to just use strings like openssl == 3.0.19 and split them where necessary.

Copy link
Member Author

Choose a reason for hiding this comment

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

What difficulties?

Copy link
Member

@picnixz picnixz left a comment

Choose a reason for hiding this comment

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

Ok for thoses changes. I don't know about the changes for GHA.

@hugovk hugovk merged commit c9b96b1 into python:main Mar 1, 2026
91 of 92 checks passed
@hugovk
Copy link
Member

hugovk commented Mar 1, 2026

Can we backport this, if it's not too difficult? Will make future maintenance easier.

@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot s390x RHEL9 LTO + PGO 3.x (tier-3) has failed when building commit c9b96b1.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/#/builders/1578/builds/4246) and take a look at the build logs.
  4. Check if the failure is related to this commit (c9b96b1) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/#/builders/1578/builds/4246

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 8, done.        
remote: Counting objects:  16% (1/6)        
remote: Counting objects:  33% (2/6)        
remote: Counting objects:  50% (3/6)        
remote: Counting objects:  66% (4/6)        
remote: Counting objects:  83% (5/6)        
remote: Counting objects: 100% (6/6)        
remote: Counting objects: 100% (6/6), done.        
remote: Compressing objects:  16% (1/6)        
remote: Compressing objects:  33% (2/6)        
remote: Compressing objects:  50% (3/6)        
remote: Compressing objects:  66% (4/6)        
remote: Compressing objects:  83% (5/6)        
remote: Compressing objects: 100% (6/6)        
remote: Compressing objects: 100% (6/6), done.        
remote: Total 8 (delta 0), reused 0 (delta 0), pack-reused 2 (from 1)        
From https://github.com/python/cpython
 * branch                    main       -> FETCH_HEAD
Note: switching to 'c9b96b1e6fea13dc2879dcc626015c06dc0056ac'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at c9b96b1e6fe gh-136728: Combine OpenSSL and AWS-LC CI configurations (#144805)
Switched to and reset branch 'main'

find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
make[2]: [Makefile:3450: clean-retain-profile] Error 1 (ignored)
lto-wrapper: warning: using serial compilation of 4 LTRANS jobs
lto-wrapper: warning: using serial compilation of 4 LTRANS jobs
lto-wrapper: warning: using serial compilation of 6 LTRANS jobs
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper: warning: using serial compilation of 4 LTRANS jobs
lto-wrapper: warning: using serial compilation of 3 LTRANS jobs
lto-wrapper: warning: using serial compilation of 3 LTRANS jobs
lto-wrapper: warning: using serial compilation of 3 LTRANS jobs
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper: warning: using serial compilation of 3 LTRANS jobs
lto-wrapper: warning: using serial compilation of 7 LTRANS jobs
lto-wrapper: warning: using serial compilation of 4 LTRANS jobs
lto-wrapper: warning: using serial compilation of 3 LTRANS jobs
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper: warning: using serial compilation of 3 LTRANS jobs
lto-wrapper: warning: using serial compilation of 128 LTRANS jobs
lto-wrapper: warning: using serial compilation of 6 LTRANS jobs
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper: warning: using serial compilation of 128 LTRANS jobs
lto-wrapper: warning: using serial compilation of 128 LTRANS jobs
during IPA pass: profile
./Modules/posixmodule.c: In function ‘fill_time’:
./Modules/posixmodule.c:18830:1: internal compiler error: Segmentation fault
18830 | }
      | ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/ccDNmXYn.out file, please attach this to your bugreport.
make[1]: *** [Makefile:3896: Modules/posixmodule.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Python/ceval.c: In function ‘_Py_BuildMap_StackRefSteal’:
Python/ceval.c:999:11: warning: ‘args_o_temp’ may be used uninitialized [-Wmaybe-uninitialized]
  999 |     res = _PyDict_FromItems(
      |           ^~~~~~~~~~~~~~~~~~
 1000 |         args_o, 2,
      |         ~~~~~~~~~~
 1001 |         args_o+1, 2,
      |         ~~~~~~~~~~~~
 1002 |         half_args
      |         ~~~~~~~~~
 1003 |     );
      |     ~      
In file included from Python/ceval.h:11,
                 from Python/ceval.c:3:
./Include/internal/pycore_dict.h:300:23: note: by argument 3 of type ‘struct PyObject * const *’ to ‘_PyDict_FromItems’ declared here
  300 | PyAPI_FUNC(PyObject *)_PyDict_FromItems(
      |                       ^~~~~~~~~~~~~~~~~
In file included from Python/ceval.c:703:
Python/ceval.c:994:52: note: ‘args_o_temp’ declared here
  994 |     STACKREFS_TO_PYOBJECTS(arguments, half_args*2, args_o);
      |                                                    ^~~~~~
Python/ceval.c: In function ‘_PyCallMethodDescriptorFast_StackRefSteal’:
Python/ceval.c:886:11: warning: ‘args_o_temp’ may be used uninitialized [-Wmaybe-uninitialized]
  886 |     res = cfunc(self, (args_o + 1), total_args - 1);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python/ceval.c:886:11: note: by argument 2 of type ‘struct PyObject * const *’ to ‘struct PyObject * <Td5d> (struct PyObject *, struct PyObject * const *, Py_ssize_t)’
In file included from Python/ceval.c:703:
Python/ceval.c:877:51: note: ‘args_o_temp’ declared here
  877 |     STACKREFS_TO_PYOBJECTS(arguments, total_args, args_o);
      |                                                   ^~~~~~
Python/ceval.c:886:11: warning: ‘_232’ may be used uninitialized [-Wmaybe-uninitialized]
  886 |     res = cfunc(self, (args_o + 1), total_args - 1);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python/ceval.c:886:11: note: by argument 2 of type ‘struct PyObject * const *’ to ‘struct PyObject * <Td5d> (struct PyObject *, struct PyObject * const *, Py_ssize_t)’
In file included from Python/ceval.c:703:
Python/ceval.c:877:51: note: ‘args_o_temp’ declared here
  877 |     STACKREFS_TO_PYOBJECTS(arguments, total_args, args_o);
      |                                                   ^~~~~~
Python/ceval.c: In function ‘_PyCallMethodDescriptorFastWithKeywords_StackRefSteal’:
Python/ceval.c:920:11: warning: ‘args_o_temp’ may be used uninitialized [-Wmaybe-uninitialized]
  920 |     res = cfunc(self, (args_o + 1), total_args-1, NULL);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python/ceval.c:920:11: note: by argument 2 of type ‘struct PyObject * const *’ to ‘struct PyObject * <Td63> (struct PyObject *, struct PyObject * const *, Py_ssize_t, struct PyObject *)’
In file included from Python/ceval.c:703:
Python/ceval.c:910:51: note: ‘args_o_temp’ declared here
  910 |     STACKREFS_TO_PYOBJECTS(arguments, total_args, args_o);
      |                                                   ^~~~~~
Python/ceval.c:920:11: warning: ‘_232’ may be used uninitialized [-Wmaybe-uninitialized]
  920 |     res = cfunc(self, (args_o + 1), total_args-1, NULL);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python/ceval.c:920:11: note: by argument 2 of type ‘struct PyObject * const *’ to ‘struct PyObject * <Td63> (struct PyObject *, struct PyObject * const *, Py_ssize_t, struct PyObject *)’
In file included from Python/ceval.c:703:
Python/ceval.c:910:51: note: ‘args_o_temp’ declared here
  910 |     STACKREFS_TO_PYOBJECTS(arguments, total_args, args_o);
      |                                                   ^~~~~~
make: *** [Makefile:1046: profile-opt] Error 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra CI, GitHub Actions, buildbots, Dependabot, etc. skip news tests Tests in the Lib/test dir topic-SSL type-refactor Code refactoring (with no changes in behavior)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants