← All tasks
pythonsnowflakedb/snowflake-connector-python #2109Not a task: already works

SNOW-1831724: AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY' error on import with PyOpenSSL<22.1.0 installed

envgap__snowflakedb__snowflake-connector-python-2109

01 / FAILURE SIGNATURE

As reported upstream

[2024-11-27T18:38:44Z] E   AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'
Not a benchmark task.
  • The project already builds and runs before the fix, so there is nothing to repair.

02 / ENVIRONMENT RECIPE

Base commit
557774d3e6de714ce4c2f642c7d8aa3ad2577d0d
Manifest
setup.cfg
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

snowflakedb/snowflake-connector-python #2109 · read the original issue
### Python version

3.11.7

### Operating system and processor architecture

macOS-14.3.1-arm64-arm-64bit

### Installed packages

```python
+ agate==1.9.1

 + aiofile==3.9.0

 + alembic==1.14.0

 + annotated-types==0.7.0

 + antlr4-python3-runtime==4.13.2

 + anyio==4.6.2.post1

 + asn1crypto==1.5.1

 + assets-smoke-test==0.0.0 (from file:///Users/dgibson/dagster/examples/assets_smoke_test)

 + attrs==24.2.0

 + babel==2.16.0

 + backoff==2.2.1

 + backports-tarfile==1.2.0

 + buildkite-test-collector==0.1.9

 + cachetools==5.5.0

 + caio==0.9.17

 + certifi==2024.8.30

 + cffi==1.17.1

 + chardet==5.2.0

 + charset-normalizer==3.4.0

 + click==8.1.7

 + colorama==0.4.6

 + coloredlogs==14.0

 + coverage==7.6.8

 + croniter==3.0.4

 + cryptography==44.0.0

 + daff==1.3.46

 + dagster==1!0+dev (from file:///Users/dgibson/dagster/python_modules/dagster)

 + dagster-dbt==1!0+dev (from file:///Users/dgibson/dagster/python_modules/libraries/dagster-dbt)

 + dagster-graphql==1!0+dev (from file:///Users/dgibson/dagster/python_modules/dagster-graphql)

 + dagster-pandas==1!0+dev (from file:///Users/dgibson/dagster/python_modules/libraries/dagster-pandas)

 + dagster-pipes==1!0+dev (from file:///Users/dgibson/dagster/python_modules/dagster-pipes)

 + dagster-snowflake==1!0+dev (from file:///Users/dgibson/dagster/python_modules/libraries/dagster-snowflake)

 + dagster-snowflake-pandas==1!0+dev (from file:///Users/dgibson/dagster/python_modules/libraries/dagster-snowflake-pandas)

 + dagster-webserver==1!0+dev (from file:///Users/dgibson/dagster/python_modules/dagster-webserver)

 + dbt-adapters==1.7.0

 + dbt-common==1.10.0

 + dbt-core==1.8.8

 + dbt-extractor==0.5.1

 + dbt-semantic-interfaces==0.5.1

 + dbt-snowflake==1.8.4

 + deepdiff==7.0.1

 + distlib==0.3.9

 + docker==7.1.0

 + docstring-parser==0.16

 + execnet==2.1.1

 + filelock==3.16.1

 + flaky==3.8.1

 + fsspec==2024.3.0

 + gql==3.5.0

 + graphene==3.4.3

 + graphql-core==3.2.5

 + graphql-relay==3.2.0

 + grpcio==1.68.0

 + grpcio-health-checking==1.62.3

 + grpcio-tools==1.62.3

 + h11==0.14.0

 + httptools==0.6.4

 + humanfriendly==10.0

 + idna==3.10

 + importlib-metadata==6.11.0

 + iniconfig==2.0.0

 + isodate==0.6.1

 + jaraco-classes==3.4.0

 + jaraco-context==6.0.1

 + jaraco-functools==4.1.0

 + jinja2==3.1.4

 + jsonschema==4.23.0

 + jsonschema-specifications==2024.10.1

 + keyring==25.5.0

 + leather==0.4.0

 + logbook==1.5.3

 + mako==1.3.6

 + markdown-it-py==3.0.0

 + markupsafe==3.0.2

 + mashumaro==3.15

 + mdurl==0.1.2

 + minimal-snowplow-tracker==0.0.2

 + more-itertools==10.5.0

 + morefs==0.2.2

 + msgpack==1.1.0

 + multidict==6.1.0

 + mypy-protobuf==3.6.0

 + networkx==3.4.2

 + numpy==2.1.3

 + objgraph==3.6.2

 + ordered-set==4.1.0

 + orjson==3.10.12

 + packaging==24.2

 + pandas==2.2.3

 + parsedatetime==2.6

 + pathspec==0.12.1

 + platformdirs==4.3.6

 + pluggy==1.5.0

 + propcache==0.2.0

 + protobuf==4.25.5

 + pyarrow==18.1.0

 + pycparser==2.22

 + pydantic==2.9.2

 + pydantic-core==2.23.4

 + pygments==2.18.0

 + pyjwt==2.10.0

 + pyopenssl==22.0.0

 + pyproject-api==1.8.0

 + pytest==8.3.3

 + pytest-asyncio==0.24.0

 + pytest-cov==5.0.0

 + pytest-mock==3.14.0

 + pytest-xdist==3.6.1

 + python-dateutil==2.9.0.post0

 + python-dotenv==1.0.1

 + python-slugify==8.0.4

 + pytimeparse==1.1.8

 + pytz==2024.2

 + pyyaml==6.0.2

 + rapidfuzz==3.10.1

 + referencing==0.35.1

 + requests==2.32.3

 + requests-toolbelt==1.0.0

 + responses==0.23.1

 + rich==13.9.4

 + rpds-py==0.21.0

 + shellingham==1.5.4

 + six==1.16.0

 + sniffio==1.3.1

 + snowflake-connector-python==3.12.3

 + snowflake-sqlalchemy==1.7.0

 + sortedcontainers==2.4.0

 + sqlalchemy==2.0.36

 + sqlglot==25.32.1

 + sqlglotrs==0.3.0

 + sqlparse==0.5.2

 + starlette==0.41.3

 + structlog==24.4.0

 + syrupy==4.8.0

 + tabulate==0.9.0

 + text-unidecode==1.3

 + tomli==2.1.0

 + tomlkit==0.13.2

 + toposort==1.10

 + tox==4.23.2

 + tqdm==4.67.1

 + typer==0.13.1

 + types-protobuf==5.28.3.20241030

 + types-pyyaml==6.0.12.20240917

 + typing-extensions==4.12.2

 + tzdata==2024.2

 + universal-pathlib==0.2.5

 + urllib3==2.2.3

 + uvicorn==0.32.1

 + uvloop==0.21.0

 + virtualenv==20.28.0

 + watchdog==5.0.3

 + watchfiles==1.0.0

 + websockets==14.1

 + yarl==1.18.0

 + zipp==3.21.0
```


### What did you do?

```python
the pyopenssl pin in this package is pyOpenSSL>=16.2.0,<25.0.0



but if you install a version of pyOpenSSL<23 you get the following error on import



[2024-11-27T18:38:44Z]     import snowflake.connector

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/snowflake/connector/__init__.py:19: in <module>

[2024-11-27T18:38:44Z]     from .connection import SnowflakeConnection

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/snowflake/connector/connection.py:37: in <module>

[2024-11-27T18:38:44Z]     from .auth import (

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/snowflake/connector/auth/__init__.py:7: in <module>

[2024-11-27T18:38:44Z]     from ._auth import Auth, get_public_key_fingerprint, get_token_from_private_key

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/snowflake/connector/auth/_auth.py:55: in <module>

[2024-11-27T18:38:44Z]     from ..network import (

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/snowflake/connector/network.py:21: in <module>

[2024-11-27T18:38:44Z]     import OpenSSL.SSL

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/OpenSSL/__init__.py:8: in <module>

[2024-11-27T18:38:44Z]     from OpenSSL import crypto, SSL

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/OpenSSL/crypto.py:1570: in <module>

[2024-11-27T18:38:44Z]     class X509StoreFlags(object):

[2024-11-27T18:38:44Z] .tox/py311/lib/python3.11/site-packages/OpenSSL/crypto.py:1589: in X509StoreFlags

[2024-11-27T18:38:44Z]     NOTIFY_POLICY = _lib.X509_V_FLAG_NOTIFY_POLICY

[2024-11-27T18:38:44Z] E   AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'
```


### What did you expect to see?

no errors on all pinned versions of pyopenssl

### Can you set logging to DEBUG and collect the logs?

```bash
import logging

import os



for logger_name in ('snowflake.connector',):

    logger = logging.getLogger(logger_name)

    logger.setLevel(logging.DEBUG)

    ch = logging.StreamHandler()

    ch.setLevel(logging.DEBUG)

    ch.setFormatter(logging.Formatter('%(asctime)s - %(threadName)s %(filename)s:%(lineno)d - %(funcName)s() - %(levelname)s - %(message)s'))

    logger.addHandler(ch)
```
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]