Skip to content

Fix snowflake provider installs picking an unimportable pyOpenSSL - #71145

Merged
jason810496 merged 1 commit into
apache:mainfrom
rjgoyln:fix-snowflake-pyopenssl-resolver-window
Aug 5, 2026
Merged

Fix snowflake provider installs picking an unimportable pyOpenSSL#71145
jason810496 merged 1 commit into
apache:mainfrom
rjgoyln:fix-snowflake-pyopenssl-resolver-window

Conversation

@rjgoyln

@rjgoyln rjgoyln commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

The Compat 2.11.1, Compat 3.0.6 and Compat 3.1.8 provider jobs fail collection on main with AttributeError: module 'lib' has no attribute 'GEN_EMAIL'; 3.2.2 and 3.3.0 are unaffected.

Those jobs resolve the freshly built distributions unpinned (--providers-skip-constraints), and with the apache/beam provider suspended nothing in the set caps cryptography any more, so it goes to the newest release. snowflake-connector-python below 4.4.0 requires pyOpenSSL<26.0.0, and the only candidate in that window claiming compatibility with a current cryptography is 22.0.0 — which declares cryptography>=35.0 with no upper bound at all. The resolver takes it, backtracks the connector to 4.0.0 to match, and lands on an environment that installs cleanly and then dies the moment anything imports urllib3.contrib.pyopenssl.

22.1.0 is the first pyOpenSSL release that bounds cryptography honestly, so the floor drops exactly the releases that lie and nothing else. Raising snowflake-connector-python to >=4.4.0 — the release that dropped the cap — would be the tidier fix but requires cryptography>=46.0.5, unsatisfiable against the constraints of every Airflow version these jobs cover.

Tests

Resolving main's full provider dependency set for Python 3.10: unpinned now selects connector 4.7.1 with pyOpenSSL 26.3.0, and pinning cryptography to each value the released constraint files carry (41.0.7 / 42.0.8 / 44.0.3 / 45.0.7) still yields an importable pair.


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 5)

Generated-by: Claude Code (Opus 5) following the guidelines

@jason810496 jason810496 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks.

The only CI failure should be resolved in #71140. The CI should come back to green after rebasing.

snowflake-connector-python below 4.4.0 caps pyOpenSSL under 26.0.0, and
pyOpenSSL 22.0.0 and older declare no upper bound on cryptography. Where
nothing else pins cryptography — the provider compatibility jobs install
the freshly built distributions without constraints — the resolver
satisfies the newest cryptography with that ancient pyOpenSSL and
backtracks the connector to 4.0.0. The environment installs cleanly and
then dies on import with "module 'lib' has no attribute 'GEN_EMAIL'".
@jason810496
jason810496 force-pushed the fix-snowflake-pyopenssl-resolver-window branch from 1773f85 to a1cfd6c Compare August 5, 2026 08:29
@amoghrajesh

Copy link
Copy Markdown
Contributor

Taking a look.

@amoghrajesh amoghrajesh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, created an issue to track this: snowflakedb/snowflake-connector-python#2990

@aaron-y-chen aaron-y-chen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the fix, my PR also encountered these failures.

@jason810496
jason810496 merged commit 22ab0dc into apache:main Aug 5, 2026
209 of 229 checks passed
@jason810496

Copy link
Copy Markdown
Member

Nice!

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

Labels

area:providers full tests needed We need to run full set of tests for this PR to merge kind:documentation provider:snowflake Issues related to Snowflake provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants