SAM build from GitHub actions suddenly failing today: module 'lib' has no attribute 'OpenSSL_add_all_algorithms
Asked Answered
M

3

6

Yesterday, my SAM build was working with the below GitHub actions. Today it suddenly started failing with an error:

AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'

The SAM template doesn't have any error which I have validated; are any others facing this issue?

name: SAM deploy
on:
  push:
    branches:
      - main
jobs:
  build-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - uses: aws-actions/setup-sam@v2
      - uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.MY_AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.MY_AWS_SECRET_ACCESS_KEY }}
          aws-region: us-west-2
      - name: SAM Build
        run: sam build --use-container --template-file source/deploy-template.yml
      - name: SAM Deploy
        run: sam deploy --no-confirm-changeset --no-fail-on-empty-changeset --stack-name my-stack --resolve-s3 --capabilities CAPABILITY_IAM --region us-west-2 --parameter-overrides Environment=npd

GitHub actions error details for the SAM build

        Traceback (most recent call last):
    496
    File "/home/runner/work/_temp/setup-sam-PFBc7r/bin/sam", line 8, in <module>
    497
        sys.exit(cli())
    498
                ^^^^^
    499
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
    500
        return self.main(*args, **kwargs)
    501
            ^^^^^^^^^^^^^^^^^^^^^^^^^^
    502
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1055, in main
    503
        rv = self.invoke(ctx)
    504
            ^^^^^^^^^^^^^^^^
    505
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1651, in invoke
    506
        cmd_name, cmd, args = self.resolve_command(ctx, args)
    507
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    508
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/click/core.py", line 1698, in resolve_command
    509
        cmd = self.get_command(ctx, cmd_name)
    510
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    511
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/cli/command.py", line 133, in get_command
    512
        mod = importlib.import_module(pkg_name)
    513
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    514
    File "/opt/hostedtoolcache/Python/3.11.1/x64/lib/python3.11/importlib/__init__.py", line 126, in import_module
    515
        return _bootstrap._gcd_import(name[level:], package, level)
    516
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    517
    File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
    518
    File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
    519
    File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
    520
    File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
    521
    File "<frozen importlib._bootstrap_external>", line 940, in exec_module
    522
    File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
    523
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/build/__init__.py", line 6, in <module>
    524
        from .command import cli  # noqa
    505
        ^^^^^^^^^^^^^^^^^^^^^^^^
    506
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/build/command.py", line 12, in <module>
    507
        from samcli.commands._utils.options import (
    508
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/_utils/options.py", line 21, in <module>
    509
        from samcli.commands._utils.template import get_template_data, TemplateNotFoundException
    510
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/samcli/commands/_utils/template.py", line 10, in <module>
    511
        from botocore.utils import set_value_from_jmespath
    512
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/botocore/utils.py", line 37, in <module>
    513
        import botocore.httpsession
    514
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/botocore/httpsession.py", line 46, in <module>
    515
        from urllib3.contrib.pyopenssl import (
    516
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py", line 50, in <module>
    517
        import OpenSSL.crypto
    518
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/OpenSSL/__init__.py", line 8, in <module>
    519
        from OpenSSL import crypto, SSL
    520
    File "/home/runner/work/_temp/setup-sam-PFBc7r/.venv/lib/python3.11/site-packages/OpenSSL/crypto.py", line 3268, in <module>
    521
        _lib.OpenSSL_add_all_algorithms()
    522
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    523
    AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
    524
    Error: Process completed with exit code 1.

I validated the SAM template

I also tried sudo apt install python3-openssl in the GitHub actions, but it didn't work.

Mantra answered 2/1, 2023 at 11:56 Comment(2)
@Jortega As a workaround, downgrade the aws-actions/setup-sam@v2 to 1.59.0 and you can see my below answer which worked for meMantra
@PrasannaKumarKN Do you know the terminal commands for this downgrade?Mchail
E
3

Running this command worked for me:

pip install pyopenssl --upgrade
Ethridge answered 2/1, 2023 at 15:49 Comment(3)
Didn't worked for me, sam build still fails!, can you elaborate on your answer? Did you run the above command in Github actions workflow?Mantra
My case is on a Gitlab-ci (so in before_script)Twophase
@PrasannaKumarKN, if you read github.com/actions/setup-python, you can find docs and try - run: pip install pyopenssl --upgradeTwophase
M
2

It started working again after downgrading the version of aws-actions/setup-sam@v2. The issue is with the cryptography version 39.0.0 which was released 13hrs ago; the latest version SAM uses this version, and during the SAM build we are noticing an error.

Refer to the PyPi release history: https://pypi.org/project/cryptography/38.0.4/#history

So whoever using aws-actions/setup-sam@v2 should point back to the SAM version to 1.59.0 which could be a temporary fix:

    name: SAM deploy
    on:
    push:
      branches:
        - main
    jobs:
      build-deploy:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v3
        - uses: actions/setup-python@v3
        - uses: aws-actions/setup-sam@v2
          with:
            version: 1.59.0
        - uses: aws-actions/configure-aws-credentials@v1
            with:
            aws-access-key-id: ${{ secrets.MY_AWS_ACCESS_KEY_ID }}
            aws-secret-access-key: ${{ secrets.MY_AWS_SECRET_ACCESS_KEY }}
            aws-region: us-west-2
        - name: SAM Build
            run: sam build --use-container --template-file source/deploy-template.yml
        - name: SAM Deploy
            run: sam deploy --no-confirm-changeset --no-fail-on-empty-changeset --stack-name my-stack --resolve-s3 --capabilities CAPABILITY_IAM --region us-west-2 --parameter-overrides Environment=npd
Mantra answered 2/1, 2023 at 17:27 Comment(0)
L
1

Please run this command:

pip3 install --force-reinstall cryptography==38.0.4

or pip3 install --upgrade cryptography==38.0.4

cryptography 39.0.0 no longer supports openssl 1.1.0 or older and thus is causing this issue.

https://cryptography.io/en/latest/changelog/#v39-0-0

Lanilaniard answered 4/1, 2023 at 3:48 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.