Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SNOW-1319756: Cannot connect to Snowflake using externalbrowser in a Docker container when running as a script #1917

Closed
rschack-cedar opened this issue Apr 10, 2024 · 8 comments
Assignees
Labels
question status-triage_done Initial triage done, will be further handled by the driver team

Comments

@rschack-cedar
Copy link

rschack-cedar commented Apr 10, 2024

Python version

Python 3.11.6 (main, Nov 29 2023, 04:07:34) [GCC 10.2.1 20210110]

Operating system and processor architecture

Linux-6.6.12-linuxkit-aarch64-with-glibc2.31

Installed packages

agate==1.7.1
annotated-types==0.6.0
appdirs==1.4.4
asn1crypto==1.5.1
attrs==23.2.0
Babel==2.14.0
certifi==2024.2.2
cffi==1.16.0
chardet==5.2.0
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
cryptography==42.0.5
daff==1.3.46
dbt-adapters==1.0.0
dbt-common==1.0.0
dbt-core==1.8.0b1
dbt-extractor==0.5.1
dbt-semantic-interfaces==0.5.1
dbt-snowflake==1.8.0b1
diff_cover==8.0.3
filelock==3.13.3
idna==3.6
importlib-metadata==6.11.0
iniconfig==2.0.0
isodate==0.6.1
jaraco.classes==3.4.0
jeepney==0.8.0
Jinja2==3.1.3
jinja2-simple-tags==0.6.1
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
keyring==24.3.1
leather==0.4.0
Logbook==1.5.3
markdown-it-py==3.0.0
MarkupSafe==2.1.5
mashumaro==3.12
mdurl==0.1.2
minimal-snowplow-tracker==0.0.2
more-itertools==10.2.0
msgpack==1.0.8
networkx==3.2.1
packaging==24.0
parsedatetime==2.6
pathspec==0.11.2
platformdirs==4.2.0
pluggy==1.4.0
protobuf==4.25.3
pycparser==2.22
pydantic==2.6.4
pydantic_core==2.16.3
Pygments==2.17.2
PyJWT==2.8.0
pyOpenSSL==24.1.0
pytest==8.1.1
python-dateutil==2.9.0.post0
python-slugify==8.0.4
pytimeparse==1.1.8
pytz==2024.1
PyYAML==6.0.1
referencing==0.34.0
regex==2023.12.25
requests==2.31.0
rich==13.7.1
rpds-py==0.18.0
ruamel.yaml==0.18.6
ruamel.yaml.clib==0.2.8
SecretStorage==3.3.3
six==1.16.0
snowflake-connector-python==3.8.0
sortedcontainers==2.4.0
sqlfluff==3.0.3
sqlfluff-templater-dbt==3.0.3
sqlparse==0.4.4
tblib==3.0.0
text-unidecode==1.3
tomlkit==0.12.4
tqdm==4.66.2
typing_extensions==4.10.0
urllib3==2.2.1
zipp==3.18.1

What did you do?

While in a docker container, I'm unable to connect to Snowflake using externalbrowser (script below). Oddly, however, if I run the script interactively in a python shell, I can authenticate and connect to Snowflake without any issue. It's worth mentioning that we use a Cyral sidecar with Snowflake

import os

import snowflake.connector

c = snowflake.connector.connect(
    account=f"{{os.getenv('SF_ACCOUNT_ID')}}.us-east-1.privatelink",
    host="snowflake.cedarinternal.com",
    port=443,
    authenticator="externalbrowser",
    user=os.getenv("USER"),
    database="cedar",
    schema="sandbox",
    warehouse="compute_wh",
    role="cedar_read_only",
)

cur = c.cursor()
cur.execute("select 1 as id")
for col1 in cur:
    print(col1)

The Dockerfile and docker-compose.yml files:

FROM public.ecr.aws/docker/library/python:3.11.6-slim-bullseye as base

RUN apt-get update \
    && apt-get -y upgrade \
    && apt-get install -y --no-install-recommends \
    g++ \
    gcc \
    git \
    libpq-dev \
    python-dev \
    python3-pip

WORKDIR /usr/src/dbt

COPY requirements.txt ./requirements.txt

RUN python -m pip install -U certifi cffi pip setuptools --no-cache-dir \
    && python -m pip install -r ./requirements.txt

SHELL ["/bin/bash", "-o", "pipefail", "-c"]
version: '3.6'
services:
  dbt:
    build: .
    environment:
      - USER=${USER}
      - SF_ACCOUNT_ID=${SF_ACCOUNT_ID}
      - SF_AUTH_SOCKET_PORT=3037
      - SNOWFLAKE_AUTH_SOCKET_REUSE_PORT=true
    volumes:
      - ./:/usr/src/dbt
    ports:
      - "3037:3037"

What did you expect to see?

When running in a script, the authentication fails with the following error: snowflake.connector.errors.OperationalError: 250001: 250001: Could not connect to Snowflake backend after 2 attempt(s).Aborting. When running the same program in an interactive python shell, it succeeds (output from interactive session below):

>>> import os
>>> import snowflake.connector
>>> c = snowflake.connector.connect(
...     account=f"{{os.getenv('SF_ACCOUNT_ID')}}.us-east-1.privatelink",
...     host="snowflake.cedarinternal.com",
...     port=443,
...     authenticator="externalbrowser",
...     user=os.getenv("USER"),
...     database="cedar",
...     schema="sandbox",
...     warehouse="compute_wh",
...     role="cedar_read_only",
... )
Initiating login request with your identity provider. A browser window should have opened for you to complete the login. If you can't see it, check existing browser windows, or your OS settings. Press CTRL+C to abort and try again...
Going to open: https://privatelink.snowflake.cedarinternal.com/session/v1/CyralSSOLogin?SAMLRequest=jVLRbtowFH3vV0TeM7EDaBSLUGUwOjYKGYFK25uXXKiLY2e2k5R9%2FZzQSJWmor3a59xzzj13cveSC68CbbiSIQp8gjyQqcq4PIZov1v0bpFnLJMZE0pCiM5g0N30ZmJYLgoalfZJbuF3CcZ6bpI0tPkIUaklVcxwQyXLwVCb0iR6WNG%2BTygzBrR1euiVkhnuxJ6sLSjGdV379cBX%2Boj7hBBMxtihGsgH9EaiuK5RaGVVqkRHeXGh3pEIMBk2Eg7hFOJX4icuLzu4pvLrAjL0y24X9%2BJNskNe1KWbKWnKHHQCuuIp7LeriwHjHBip6oNgJ%2FBTyJjm0oKWTPipyvEBMizUkbv1LOchKk48e%2Fj2sapG48dnWFfxuZqvB%2FffP%2F%2F4c3ze7%2BttPFoEX%2B%2BzaEw2R0tS5D12bfabNpfGlLCUTYfWPZH%2BsEeGvYDsggENRnQw9ke35Cfy5q5CLpltmZ3PQvOKWRBcnvxrng2YRhJXAZ6dNRNJslm1EaY3ntfeCm196Ol%2FbGCC3xK6AQVdu%2F0v57ESPD17C6VzZt%2BvJ%2FCD9oVnvUMLpZAzLqIs086rq0kIVc80uHQhsroEhN1V43%2FPevoX&RelayState=3037 to authenticate...
We were unable to open a browser window for you, please open the url above manually then paste the URL you are redirected to into the terminal.
Enter the URL the SSO URL redirected you to: http://localhost:3037/?token=7V1Zc9u6kn73r3A5VffF5Yj7NrHvUCJFbZRI7dKLiiJBiuIq7tKvH1CyvMXJyTnn3qmLmVSlHBMEwK8bjcbXDZD%2B9s8q8G8LkKRuFD7e4V%2Bxu1sQmpHlhs7j3WzafuDu%2Fvn0LTUCn4iFMUjjKEzBrQTSzA2N7Nxol2VxKjQaceIWRgZ8N%2FS%2BpmFU2r7hga8msIzEDTOQhIb%2F1YyChg2shh85bnh325Ue71wLJ2mSJ1iGIjmaY3GGwHAWY1mGI2GN8PrQafR4F3uupfaZomD5%2BR4MC%2B1YSENS0eXVydnPZuVYY9t4T7FEHhs5GWbC9mmag26YZkaYPd4RGEE9YNQDjk1xUsBZgSK%2B0gy1vrudX1VA1CqASglT4SL1412ehEJkpG4qhEYAUiEzhYmoDgRYVYiTKIvMyL%2B2qdKLQqA%2ByrL8WpJfo8RpEBiGN5bqYGLuQGDcPStUOINLbttREhjZz59Tl7jWg32uKoAwc7PjO5w%2Fb26kKUjq4bp7eoMu8jLjPCSg8lhsx9qUzJr9tZFH1I751ngL8umblQoT14GDnifg%2BcHWj4TFGhjfgHWs1HW%2B3L20BVY3tKPzZcsIo9A1Dd89nc1IBdkusm5F34kSN9sFP9QijtUdP4DKfDBxKvxy13gP7Zc7wqgrwocgSsCXJDUe0p1B0Mxzl2NggwROBnA7G3cf77781FDPLaaJEab1EKXvL%2F8QzTt9gbAAfhQD6yG9CvWM6Nc7%2FERPT9%2BAKXRD089TtwDD2kRiwwTprZYA260GbgpNsEqvRgXMPzUEjbfwPlxetCG5DvQaf3J4oPq%2FvBuUSy9zw8%2FBk%2BXqff0EKHuua2O5HIN7Um8uNGvAcV62b0267GhJ5Ml%2BLnOPZ0RvG58LXob4cvnBRl9s6tJiLImtTm%2FN8fms0ZFdMz5xyx65Ilv7FD%2FO%2BmqncLvTsSez5bLpDOgmobby5b0fDaNO0XQmcbRlTz4RkY1OUbhluyLINbOY2y43G8T2uvJMPjqdqBbnKdp03KAYvTAU8ZCbuNaajRk61DvTZKlPjDkTHcY9pbWfYCXRwO%2FbcWdxP8mb3aqLg%2B58W%2FQTdR%2F7mLfohUUyVQpFmef7YsouDDsy89JKNbpnG9KhSmZ%2BUIz7lbRkenyIK3m06MVOexFza%2F50CgPN2olDR3eoTtydnhrDkdQf5gWD59ZeKkaRxmRMz1%2BH9054XC36%2FcYqVsSxPKyi0dDOyvGa4k%2BdYLxdnfpsrzfVG3OwnGbMYbn1Y%2BXYs7qdI6c%2FPr6o%2Fo2ua%2FX3wfFlKJY0xktGZrxctGp3ZkMHkoEntduVgn2rJUZ9Ryy7TdHpKuJSzg5RtldFTGlNDsqkuyUlXW62ypmodpWhqqdlS19Jc11X5LI3n53kqdqUlRsRn8ktsezrRDs1FuvCDOh4NZUXalNX6nvNshzOiHbelddQaHpvLIf77UkeqmJ6vt9ySnlKZBhsM7tRm91LYVkOZvhQm3V6hRX43nrZraS9qDad4bwpqmpzMfTXSvuojstScVa9frTu7gpzKOpes%2B3g8TZYFze6wieWIucrgs%2FUJrWUpt1SldSTKnWPw6lZqngEy9Q3ZU5dVjorrGqdxN7lYaup6M%2BnN%2BpYLeWL%2FF1JjKXVoorXAX%2FcBv5OHa%2FKtni%2B15FEfLpaUM447O22wTA2iWGh6ljZKs%2F3%2B5I41m4Mcgwb6aXsnAsHkphNZxivmwFPGIuxb%2B7lkSqWZ1WIZdleEXNvBVUAezeajnfYea7Cl1izpcuLG2nh5xCJuK2VOKH3WwIrHUd2P46kqM9Ekeo2pVKs7%2FfFCI68LiVJKQazE%2FQLacO%2B2bvzVM2MzrqkW74ixiHPOYV%2FKs1eeJjIQWH2o%2FnqyIfajgKzIlC6xKFDtnR6NKZVTdqxxviQj3piR1Ts%2BU0rypvSgd5pJe%2FNdwOzZVmwVsPMCcMInPu977hKk6P2h86p7I%2BUe3s4PGjper7DK%2F5keslgqehqr1%2BZ1nZx05l7VaKOBnzaqCYMPxlIh9H9tCe7bUkdaDtzP8rCBumvtv6y6vsV5kWy2khWlnPqOa1pYnZHbbopFoep217fZL6jgVTrW%2Fk4d%2FyVZxSnkWKnFVGJdm%2FldA%2BrwBgTLVM3vQHPsZg4bjb6StFuubnZOZJl0aAnI9BtTPQ%2BuFFYXWkky7VZ2bncGKmODy1khq9FR22KolxK%2BlsDlQdNXZTgAEA79t1laY86cmMYSLq28DNwE1Wn9XB%2Fb%2BPs%2FaQdtL3dumosmKxLdLRdfmTxVBmTAee3FlqiWEvZYnlSPE3LQbJfY8d5128RFldRVLTiyuCmz%2B456ahncxs7eJ6nVxWvDkbQtcbQmdrmmq1k37lva9vsfuJCxgM4HIA9fojITmq1Vh6mDdj23mamdknfFMvJwg66mWenu9mSirZYNDueBqoa8sBJR1uLcLbarCx6WqFp9039tKCspthbqCKz61EM8ODkGgFpOtHc%2BU1HtVP%2FxPaWoesl%2B6rX2mmmCI5Ne8FbNKOse7w2m4z3h7TFaFp8Cua5HLjbMbGTTvKsrapinFaLZXue27P2zRxz94tKWQK5P6vIUWfiYRcn%2BdHxvRReXGPjrdN851RfGPwkg9fpX%2BG3H7poRRa4Pfvqn7dPz7WFSW5CqpGemcK7fq5UWLwS1I8xAYXxHEbiOMHzPEvgPP8v4PS%2FypV%2Fc%2Fr%2FR5z%2Be0P7zen%2F9zl9KgPs2FlOuaLbYTp6xKbKMT75E2k4b%2Bz5Rls5LSnHOR44ufuv4PTR1jImdkngI56iG7Nt4huTQV%2FeEvvFdHifzrdjxTyqvNUJ%2FJ6Bl5N47RPaUGKHVb6PlGQ0AwRkcgHH7rIWs5sGwxWl6r3UmPbo4TwmTmTP3g1F59DeHg785HDEllQRxZwZc4ssn44lcxaF84ZKdJZ0e3k%2FXQeTauGR5XRZqcpp1Ri4o3WPpcSJ24xWURR3QxbSO21E3rMj3eqpQ88Y3rcG276tHpOGftQxpyW1knu5YHGzTQczvSBt15%2F4ZdA%2BNHlKbe9Me7RTcoupQo69jzBtJuFlufXGspbpxymWSJ3pgTO2ZGlbA6fZsRnC3VlhcALDUsHUuNfYkbvF2OklWHNe6K3ZMdiC3pgYN31u2xuSp36DEX9z%2Bt%2Bc%2Fjen%2F83pf3P6fz%2Bnh9R6uwdm9pd443MXNXHoSn%2FIWfGv%2BAfOmodpDEwIHVh3T0lq7gzTu3LMS6cfULai0HbrpjXTv%2FCGn4M1A2ELjAQkdz%2FpqVbV394pGEbZKBwlop2B5GNUQRCXqIKGUcUYChy7oA49%2FvrOx0sc9Jk4H%2B9dJYd1LLeukNZgmwAOAvgu%2FnmD9Fcl%2BhuWI%2BaWW3MtqPoscc0L%2Bve3nq5a%2BolmrgK%2FtPlY8K7%2Fxkd1vD4y24V1XAkCOD6358tP40QoPCuQ%2BFeSJqD8ExiZwm66oQWqv2I5f0t%2FECIUJANV9llZy4dtIKN9%2Bmm3pmDW9WCxBv8ro8TSYNgOLQdYZ8IeR0n2qtFPev%2Fs5vvCF62%2BoMzggGzzDLzq%2B%2B%2Fo4drbbe02Hu9gRO36d%2BeLX4mkDdi8Lr36pS2sZ37f%2BZmH%2Fpmg%2FqWu%2B8eVH9yzpZkAtkpdITvGoI69hNpwQ%2BfFPf732fjfGf07eE%2FfFf9IRwGA1DsZ2f%2B31ASN2XCTzNj6QEii%2BgcwrE0U%2Bscf6es%2FDL3npi4iUM%2FJAt%2B16%2BQTXJUAqO8ggT2OBSfN3QwIezcxHtLIzkrIEh5y6FhSJCQwBcfNdvlWsCB52aCmf3OzMcp0s6EICqdxmmcokt1sxnCqjpCZqc8i4DjJYiRNswSNISoCy2M8S3MEQxLMZqP5RnZO0SEhw%2BtMjp9xP5iQ1yKB%2Fap%2FnidIjmAJlqHhLBCtADZESgCGIFiOwDGMY1Cbxq%2F2Y8IQCiKBddFZBmCLF7sX0LF74RRFwYU%2BogH404l6VfzmkLuml7rOLtskEVICYXDtJXE4e3ECMc9zJm6C4fuIwI0NByRWnh2vUUmda7JAggL8c37sH0YQ%2F9dtE4agILRuZbQIp2p4iHh0uQDJMQpRceR%2BFHloGHEdMSUAhLsIru5oAH520iTF0pBZERRJEJvNdeYhYc1vQwwKx3kOp3ACLYaIcILgwmutxC2AAF1KBowfJg3%2Fw6BbkZnXJ10ui2UKUFkp66SYD5dIwY0e4iSycjN7CJBZeyB6PH7eARDSFC0q%2Bz4GRSuJ8SIDTcF%2FNEtCUo4WHb%2B6eZLkaAL6eigFcoMggCoGYerax3qHCXqfelcKEehQ%2BxdfidLSWm88RtCzx4aFCNwMUi8krNmBz66NYmOcD06jAPlsDdcUHDqR%2FctOBkaQHEcwBA89X23WRn0ox4AEAJWckODnQZQKYeQGsX%2Fekj8fJ0HCeOpE6Jmbb0o3223gb66BiAG9tXoUc9BvUugIhhqfTl%2FEFtHnneDLgQ4kML%2BaDIC%2BJjoCNFbVV6JO4gRPMgzL4Qjy3EuIiuqZgfcb7oilw94E2Ns8rdkkIsA%2FzUWi5CfP5%2BYeUDV6FsMYjKA5EqfRy268RqeozdbcAgES1l2vqC8HpFEBfD14gebMFOBvsWGiEyJdaPnDmaSjALg2EcNNbD8qkYB79dXQS%2FMsy7AMyTKbje2DalMHc2jIcNW4gGASwM59f5O5AdggFlWcD7OgAFX0%2FdtW7a5RAPsD0ooYefr0jC5KxLtOzRlwYr7Ozsv7WwYaTqWGj9QWbgo9d%2BwjMkMF049yC7LWBAh7EHrIbHgKmeH6qWnAoAadTO0lEkNqS8jYplGyHagTRPC%2B7CGjgffT9DdiUfqnOVnUVkhkueun%2FAQxCzq%2FRGdFqCQeXtdMJADXqSlbUOShNtI2kjxHaAFCfD8WkUMU6THNQHDJA6KA9z1trRM8iKCuf42f34s3QsOHekcBOWIr4js1W%2BDy5T5EDPvT97IROoj6%2FevASMCGNhMYSZbuAMgudlO4oHxA6LMV8L7pRQVAKF0v4LSNylaI%2Bbq7d7GP82K5QezjJp%2Be4EAqH4uWV3nWN4dTMDamcYbASaS8%2BTuehQiZfbVyluEI%2BIPmMB4lrSP2au%2Fbs4SIIX9n3ikIswQRP%2F76NjsaeK%2BslsEwimdpksM5xNadH2Rq0ZTh%2Fat6SOUK61TtGzdzThw%2BbC8fRUDwCFMaR16IAtbozYduUMBb63YH3foWrkuI4K1joSwxkDCH6yF2RLBCS6hPeiNHUCC1OrkxClA%2F%2BGUUIJ8jeAFB4DVvzf36G%2BJGgIRxXF9tRAErgl8xfPPWIhqA331tAZJpikYuLXJMDB%2Bdg0cZSDPBRoQJveYT%2FsSZjO8%2Fuv2x5M0X0K%2B3rp8xf%2F2jZtc%2FQfD0Pw%3D%3D
>>> cur = c.cursor()
>>> cur.execute("select 1 as id")
<snowflake.connector.cursor.SnowflakeCursor object at 0xffff94c36d90>
>>> for col1 in cur:
...     print(col1)
... 
(1,)
>>> 

Can you set logging to DEBUG and collect the logs?

2024-04-10 13:12:35,819 - MainThread connection.py:395 - __init__() - INFO - Snowflake Connector for Python Version: 3.8.0, Python Version: 3.11.6, Platform: Linux-6.6.12-linuxkit-aarch64-with-glibc2.31
2024-04-10 13:12:35,819 - MainThread connection.py:701 - connect() - DEBUG - connect
2024-04-10 13:12:35,819 - MainThread connection.py:1084 - __config() - DEBUG - __config
2024-04-10 13:12:35,819 - MainThread connection.py:1235 - __config() - INFO - This connection is in OCSP Fail Open Mode. TLS Certificates would be checked for validity and revocation status. Any other Certificate Revocation related exceptions or OCSP Responder failures would be disregarded in favor of connectivity.
2024-04-10 13:12:35,819 - MainThread converter.py:159 - __init__() - DEBUG - use_numpy: False
2024-04-10 13:12:35,820 - MainThread connection.py:911 - __open_connection() - DEBUG - REST API object was created: snowflake.cedarinternal.com:443
2024-04-10 13:12:35,820 - MainThread webbrowser.py:117 - prepare() - DEBUG - authenticating by Web Browser
2024-04-10 13:12:35,820 - MainThread webbrowser.py:150 - prepare() - DEBUG - step 1: query GS to obtain SSO url
2024-04-10 13:12:35,820 - MainThread webbrowser.py:471 - _get_sso_url() - DEBUG - account={os, authenticator=EXTERNALBROWSER, user=rschack
2024-04-10 13:12:35,821 - MainThread retry.py:351 - from_int() - DEBUG - Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
2024-04-10 13:12:35,821 - MainThread retry.py:351 - from_int() - DEBUG - Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
2024-04-10 13:12:35,821 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-10 13:12:35,821 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: N/A ms, retry cnt: 1
2024-04-10 13:12:35,821 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-10 13:12:35,822 - MainThread connectionpool.py:1019 - _new_conn() - DEBUG - Starting new HTTPS connection (1): snowflake.cedarinternal.com:443
2024-04-10 13:12:35,967 - MainThread ssl_wrap_socket.py:79 - ssl_wrap_socket_with_ocsp() - DEBUG - OCSP Mode: FAIL_OPEN, OCSP response cache file name: None
2024-04-10 13:12:35,983 - MainThread ocsp_snowflake.py:492 - reset_cache_dir() - DEBUG - cache directory: /root/.cache/snowflake
2024-04-10 13:12:35,983 - MainThread ocsp_snowflake.py:530 - reset_ocsp_response_cache_uri() - DEBUG - ocsp_response_cache_uri: file:///root/.cache/snowflake/ocsp_response_cache.json
2024-04-10 13:12:35,984 - MainThread ocsp_snowflake.py:533 - reset_ocsp_response_cache_uri() - DEBUG - OCSP_VALIDATION_CACHE size: 0
2024-04-10 13:12:35,984 - MainThread ocsp_snowflake.py:332 - reset_ocsp_dynamic_cache_server_url() - DEBUG - OCSP response cache server is enabled: http://ocsp.snowflakecomputing.com/ocsp_response_cache.json
2024-04-10 13:12:35,984 - MainThread ocsp_snowflake.py:345 - reset_ocsp_dynamic_cache_server_url() - DEBUG - OCSP dynamic cache server RETRY URL: None
2024-04-10 13:12:35,984 - MainThread ocsp_snowflake.py:691 - check_ocsp_response_cache_lock_dir() - DEBUG - Failed to check OCSP response cache file. No worry. It will validate with OCSP server: file: /root/.cache/snowflake/ocsp_response_cache.json, lock directory: /root/.cache/snowflake/ocsp_response_cache.json.lck, error: [Errno 2] No such file or directory: '/root/.cache/snowflake/ocsp_response_cache.json'
2024-04-10 13:12:35,984 - MainThread ocsp_snowflake.py:579 - read_ocsp_response_cache_file() - DEBUG - Failed to locate OCSP response cache file. No worry. It will validate with OCSP server: /root/.cache/snowflake/ocsp_response_cache.json
2024-04-10 13:12:35,984 - MainThread ocsp_snowflake.py:966 - validate() - DEBUG - validating certificate: snowflake.cedarinternal.com
2024-04-10 13:12:35,985 - MainThread ocsp_snowflake.py:972 - validate() - DEBUG - skipping OCSP check: snowflake.cedarinternal.com
2024-04-10 13:12:36,078 - MainThread connectionpool.py:474 - _make_request() - DEBUG - https://snowflake.cedarinternal.com:443 "POST /session/authenticator-request HTTP/1.1" 200 878
2024-04-10 13:12:36,079 - MainThread network.py:1092 - _request_exec() - DEBUG - SUCCESS
2024-04-10 13:12:36,079 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-10 13:12:36,079 - MainThread network.py:745 - _post_request() - DEBUG - ret[code] = None, after post request
2024-04-10 13:12:36,080 - MainThread webbrowser.py:158 - prepare() - DEBUG - Validate SSO URL
2024-04-10 13:12:36,080 - MainThread webbrowser.py:176 - prepare() - DEBUG - step 2: open a browser
2024-04-10 13:12:46,089 - MainThread _auth.py:174 - authenticate() - DEBUG - authenticate
2024-04-10 13:12:46,090 - MainThread _auth.py:208 - authenticate() - DEBUG - assertion content: 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
2024-04-10 13:12:46,091 - MainThread _auth.py:211 - authenticate() - DEBUG - account={os, user=rschack, database=cedar, schema=sandbox, warehouse=compute_wh, role=cedar_read_only, request_id=d019251e-b51d-47dc-bad4-25ebc65e2641
2024-04-10 13:12:46,091 - MainThread _auth.py:244 - authenticate() - DEBUG - body['data']: {'CLIENT_APP_ID': 'PythonConnector', 'CLIENT_APP_VERSION': '3.8.0', 'SVN_REVISION': None, 'ACCOUNT_NAME': '{os', 'LOGIN_NAME': 'rschack', 'CLIENT_ENVIRONMENT': {'APPLICATION': 'PythonConnector', 'OS': 'Linux', 'OS_VERSION': 'Linux-6.6.12-linuxkit-aarch64-with-glibc2.31', 'PYTHON_VERSION': '3.11.6', 'PYTHON_RUNTIME': 'CPython', 'PYTHON_COMPILER': 'GCC 10.2.1 20210110', 'OCSP_MODE': 'FAIL_OPEN', 'TRACING': 10, 'LOGIN_TIMEOUT': None, 'NETWORK_TIMEOUT': None, 'SOCKET_TIMEOUT': None}, 'AUTHENTICATOR': 'EXTERNALBROWSER', 'TOKEN': '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', 'PROOF_KEY': '1U1n/e7aoNzu5C8d3jqTFYZy9LJdOZ76CMuTuQG1IjM=_-1_0', 'SESSION_PARAMETERS': {'CLIENT_PREFETCH_THREADS': 4, 'CLIENT_STORE_TEMPORARY_CREDENTIAL': False}}
2024-04-10 13:12:46,092 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-10 13:12:46,092 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: N/A ms, retry cnt: 1
2024-04-10 13:12:46,092 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-10 13:12:46,148 - MainThread network.py:1167 - _request_exec() - DEBUG - Hit a timeout error while logging in. Will be handled by authenticator. Ignore the following. Error stack: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 715, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 467, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 462, in _make_request
    httplib_response = conn.getresponse()
                       ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 1378, in getresponse
    response.begin()
  File "/usr/local/lib/python3.11/http/client.py", line 318, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 287, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 799, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/util/retry.py", line 550, in increment
    raise six.reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/packages/six.py", line 769, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 715, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 467, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 462, in _make_request
    httplib_response = conn.getresponse()
                       ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 1378, in getresponse
    response.begin()
  File "/usr/local/lib/python3.11/http/client.py", line 318, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 287, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
snowflake.connector.vendored.urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/network.py", line 1078, in _request_exec
    raw_ret = session.request(
              ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/adapters.py", line 501, in send
    raise ConnectionError(err, request=request)
snowflake.connector.vendored.requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2024-04-10 13:12:46,160 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-10 13:12:46,160 - MainThread connection.py:1384 - _authenticate() - DEBUG - Operational Error raised at authenticationfor authenticator: AuthByWebBrowser
2024-04-10 13:12:46,160 - MainThread by_plugin.py:205 - handle_timeout() - DEBUG - Default timeout handler invoked for authenticator
2024-04-10 13:12:46,161 - MainThread by_plugin.py:214 - handle_timeout() - DEBUG - Hit connection timeout, attempt number 1. Will retry in a bit...
2024-04-10 13:12:47,163 - MainThread time_util.py:162 - increment() - DEBUG - Update retry count to 1
2024-04-10 13:12:47,164 - MainThread time_util.py:163 - increment() - DEBUG - Update sleep time to 1 seconds
2024-04-10 13:12:47,164 - MainThread _auth.py:174 - authenticate() - DEBUG - authenticate
2024-04-10 13:12:47,165 - MainThread _auth.py:208 - authenticate() - DEBUG - assertion content: 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
2024-04-10 13:12:47,166 - MainThread _auth.py:211 - authenticate() - DEBUG - account={os, user=rschack, database=cedar, schema=sandbox, warehouse=compute_wh, role=cedar_read_only, request_id=1f401f96-e71d-4046-8359-573737aea787
2024-04-10 13:12:47,167 - MainThread _auth.py:244 - authenticate() - DEBUG - body['data']: {'CLIENT_APP_ID': 'PythonConnector', 'CLIENT_APP_VERSION': '3.8.0', 'SVN_REVISION': None, 'ACCOUNT_NAME': '{os', 'LOGIN_NAME': 'rschack', 'CLIENT_ENVIRONMENT': {'APPLICATION': 'PythonConnector', 'OS': 'Linux', 'OS_VERSION': 'Linux-6.6.12-linuxkit-aarch64-with-glibc2.31', 'PYTHON_VERSION': '3.11.6', 'PYTHON_RUNTIME': 'CPython', 'PYTHON_COMPILER': 'GCC 10.2.1 20210110', 'OCSP_MODE': 'FAIL_OPEN', 'TRACING': 10, 'LOGIN_TIMEOUT': None, 'NETWORK_TIMEOUT': None, 'SOCKET_TIMEOUT': None}, 'AUTHENTICATOR': 'EXTERNALBROWSER', 'TOKEN': '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', 'PROOF_KEY': '1U1n/e7aoNzu5C8d3jqTFYZy9LJdOZ76CMuTuQG1IjM=_-1_0', 'SESSION_PARAMETERS': {'CLIENT_PREFETCH_THREADS': 4, 'CLIENT_STORE_TEMPORARY_CREDENTIAL': False}}
2024-04-10 13:12:47,168 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-10 13:12:47,169 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: N/A ms, retry cnt: 1
2024-04-10 13:12:47,169 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-10 13:12:47,172 - MainThread connectionpool.py:1019 - _new_conn() - DEBUG - Starting new HTTPS connection (2): snowflake.cedarinternal.com:443
2024-04-10 13:12:47,300 - MainThread ssl_wrap_socket.py:79 - ssl_wrap_socket_with_ocsp() - DEBUG - OCSP Mode: FAIL_OPEN, OCSP response cache file name: None
2024-04-10 13:12:47,300 - MainThread ocsp_snowflake.py:530 - reset_ocsp_response_cache_uri() - DEBUG - ocsp_response_cache_uri: file:///root/.cache/snowflake/ocsp_response_cache.json
2024-04-10 13:12:47,301 - MainThread ocsp_snowflake.py:533 - reset_ocsp_response_cache_uri() - DEBUG - OCSP_VALIDATION_CACHE size: 0
2024-04-10 13:12:47,301 - MainThread ocsp_snowflake.py:332 - reset_ocsp_dynamic_cache_server_url() - DEBUG - OCSP response cache server is enabled: http://ocsp.snowflakecomputing.com/ocsp_response_cache.json
2024-04-10 13:12:47,301 - MainThread ocsp_snowflake.py:345 - reset_ocsp_dynamic_cache_server_url() - DEBUG - OCSP dynamic cache server RETRY URL: None
2024-04-10 13:12:47,301 - MainThread ocsp_snowflake.py:691 - check_ocsp_response_cache_lock_dir() - DEBUG - Failed to check OCSP response cache file. No worry. It will validate with OCSP server: file: /root/.cache/snowflake/ocsp_response_cache.json, lock directory: /root/.cache/snowflake/ocsp_response_cache.json.lck, error: [Errno 2] No such file or directory: '/root/.cache/snowflake/ocsp_response_cache.json'
2024-04-10 13:12:47,302 - MainThread ocsp_snowflake.py:579 - read_ocsp_response_cache_file() - DEBUG - Failed to locate OCSP response cache file. No worry. It will validate with OCSP server: /root/.cache/snowflake/ocsp_response_cache.json
2024-04-10 13:12:47,302 - MainThread ocsp_snowflake.py:966 - validate() - DEBUG - validating certificate: snowflake.cedarinternal.com
2024-04-10 13:12:47,302 - MainThread ocsp_snowflake.py:972 - validate() - DEBUG - skipping OCSP check: snowflake.cedarinternal.com
2024-04-10 13:12:47,353 - MainThread network.py:1167 - _request_exec() - DEBUG - Hit a timeout error while logging in. Will be handled by authenticator. Ignore the following. Error stack: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 715, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 467, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 462, in _make_request
    httplib_response = conn.getresponse()
                       ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 1378, in getresponse
    response.begin()
  File "/usr/local/lib/python3.11/http/client.py", line 318, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 287, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 799, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/util/retry.py", line 550, in increment
    raise six.reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/packages/six.py", line 769, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 715, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 467, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/urllib3/connectionpool.py", line 462, in _make_request
    httplib_response = conn.getresponse()
                       ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 1378, in getresponse
    response.begin()
  File "/usr/local/lib/python3.11/http/client.py", line 318, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 287, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
snowflake.connector.vendored.urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/network.py", line 1078, in _request_exec
    raw_ret = session.request(
              ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/snowflake/connector/vendored/requests/adapters.py", line 501, in send
    raise ConnectionError(err, request=request)
snowflake.connector.vendored.requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2024-04-10 13:12:47,358 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-10 13:12:47,358 - MainThread connection.py:1414 - _authenticate() - DEBUG - Continuing authenticator specific timeout handling
2024-04-10 13:12:47,359 - MainThread by_plugin.py:205 - handle_timeout() - DEBUG - Default timeout handler invoked for authenticator
@github-actions github-actions bot changed the title Cannot connect to Snowflake using externalbrowser in a Docker container when running as a script SNOW-1319756: Cannot connect to Snowflake using externalbrowser in a Docker container when running as a script Apr 10, 2024
@sfc-gh-dszmolka sfc-gh-dszmolka added status-triage_done Initial triage done, will be further handled by the driver team and removed bug needs triage labels Apr 17, 2024
@sfc-gh-dszmolka sfc-gh-dszmolka self-assigned this Apr 17, 2024
@sfc-gh-dszmolka
Copy link
Contributor

hi - this looks like a duplicate of #1637 , a feature request to support externalbrowser authentication in a headless environment, so closing this one as a duplicate

if you think your issue is entirely different, do comment please and i can reopen and look further.

@sfc-gh-dszmolka sfc-gh-dszmolka added the duplicate This issue or pull request already exists label Apr 17, 2024
@rschack-cedar
Copy link
Author

rschack-cedar commented Apr 17, 2024

@sfc-gh-dszmolka I'm not sure if it's the same issue, but it doesn't appear to be. I'm able to connect to Snowflake using externalbrowser in a Docker container, but only if I'm running in an interactive python shell. When we run the .py script from the CLI in the Docker container, then it fails. I'm always able to open the authenication URL and copy+paste the redirect URL. The failures only happen after that.

Oddly, if I include a pdb.set_trace() in the script, it suddenly works.

@sfc-gh-dszmolka
Copy link
Contributor

The pdb.set_trace() is indeed odd. Also reopening the issue so it could be investigated separately from the other one. Thank you for the inputs!

@sfc-gh-dszmolka sfc-gh-dszmolka added bug status-triage_needed This is a new issue, and initial triage is needed and removed status-triage_done Initial triage done, will be further handled by the driver team duplicate This issue or pull request already exists labels Apr 17, 2024
@sfc-gh-dszmolka sfc-gh-dszmolka removed their assignment Apr 17, 2024
@sfc-gh-dszmolka sfc-gh-dszmolka added status-triage Issue is under initial triage and removed status-triage_needed This is a new issue, and initial triage is needed labels Apr 23, 2024
@sfc-gh-dszmolka sfc-gh-dszmolka self-assigned this Apr 23, 2024
@sfc-gh-dszmolka
Copy link
Contributor

started looking at the issue and noticed the following:

  1. in the working scenario (python shell), the SAML assertion you get back from OKTA is 5652 long. In the non-working scenario, the assertion is much shorter, 3786 characters long - and cannot be parsed. Maybe it's a partial?
  2. another weird nuance is the account name parsed out from the setup
2024-04-10 13:12:46,091 - MainThread _auth.py:211 - authenticate() - DEBUG -  account={os, user=rschack, database=cedar, schema=sandbox, warehouse=compute_wh

observe account={os which does not seem very correct, however looks to have a similar pattern as in the connection config:

c = snowflake.connector.connect(
    account=f"{{os.getenv('SF_ACCOUNT_ID')}}.us-east-1.privatelink",

almost as the connector would believe that up to the first dot (which is usually the region separator like xy12345.us-east-1) {os is the account part.

Obviously, our situation is different in a way that I don't have a reverse proxy in front of my Snowflake account but when I run the script in a container in a non-interactive manner:

import snowflake.connector
import os

c = snowflake.connector.connect(
    account=os.getenv("SFACCOUNT")
    #host="snowflake.cedarinternal.com",
    #port=443,
    authenticator="externalbrowser",
    user=os.getenv("SFUSER")
)

cur = c.cursor()
cur.execute("select 1 as id")
for col1 in cur:
    print(col1)

it threw the Okta URL, which when manually copied into a browser then the response back into the prompt opened by the PythonConnector, allows to authenticate and run the select.

Would you be able to test a couple of things and see if they help?

  1. this would be the quickest probably; instead account=f"{{os.getenv('SF_ACCOUNT_ID')}}.us-east-1.privatelink", trying something like account=os.getenv('SF_ACCOUNT_ID') + '.us-east-1.privatelink' or some other method which would make sure no templating elements can accidentally get into the account definition ?

  2. if it doesn't help; then trying to use the Snowflake account directly instead of the proxy address (snowflake.cedarinternal.com) ? Asking because the error message Remote end closed connection without response does not come from Snowflake, if the connection is happening to the proxy instead:

2024-04-10 13:12:35,820 - MainThread connection.py:911 - __open_connection() - DEBUG - REST API object was created: snowflake.cedarinternal.com:443

Can you please check sometimes when you get a chance ?

@sfc-gh-dszmolka sfc-gh-dszmolka added the status-information_needed Additional information is required from the reporter label Apr 23, 2024
@rschack-cedar
Copy link
Author

@sfc-gh-dszmolka Thanks for looking into this. I hardcoded the account ID in the format of account="<account_id>.us-east-1.privatelink (where <account_id> is the actual ID value) and it made no difference. Here's that same log message now:

2024-04-23 19:42:08,643 - MainThread _auth.py:211 - authenticate() - DEBUG - account=<account_id>, user=rschack, database=cedar, schema=sandbox, warehouse=compute_wh, role=cedar_read_only, request_id=6faf81bf-6f31-46ed-a29c-0c19d6caaefd

When I remove the host and port options, I get the following error:

snowflake.connector.errors.DatabaseError: 250001 (08001): None: Failed to connect to DB: <account_id>.us-east-1.privatelink.snowflakecomputing.com:443. SAML response is invalid or matching user is not found. Contact your local system administrator and provide the error code - . The administrator can obtain troubleshooting information at https://docs.snowflake.com/en/user-guide/errors-saml#saml-error-codes.

In case it's helpful, here's a log file when I'm able to successfully connect in the python shell

2024-04-23 19:46:48,570 - MainThread connection.py:395 - __init__() - INFO - Snowflake Connector for Python Version: 3.8.0, Python Version: 3.11.6, Platform: Linux-6.6.12-linuxkit-aarch64-with-glibc2.31
2024-04-23 19:46:48,571 - MainThread connection.py:701 - connect() - DEBUG - connect
2024-04-23 19:46:48,572 - MainThread connection.py:1084 - __config() - DEBUG - __config
2024-04-23 19:46:48,572 - MainThread connection.py:1235 - __config() - INFO - This connection is in OCSP Fail Open Mode. TLS Certificates would be checked for validity and revocation status. Any other Certificate Revocation related exceptions or OCSP Responder failures would be disregarded in favor of connectivity.
2024-04-23 19:46:48,572 - MainThread converter.py:159 - __init__() - DEBUG - use_numpy: False
2024-04-23 19:46:48,573 - MainThread connection.py:911 - __open_connection() - DEBUG - REST API object was created: snowflake.cedarinternal.com:443
2024-04-23 19:46:48,573 - MainThread webbrowser.py:117 - prepare() - DEBUG - authenticating by Web Browser
2024-04-23 19:46:48,574 - MainThread webbrowser.py:150 - prepare() - DEBUG - step 1: query GS to obtain SSO url
2024-04-23 19:46:48,575 - MainThread webbrowser.py:471 - _get_sso_url() - DEBUG - account={os, authenticator=EXTERNALBROWSER, user=rschack
2024-04-23 19:46:48,576 - MainThread retry.py:351 - from_int() - DEBUG - Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
2024-04-23 19:46:48,576 - MainThread retry.py:351 - from_int() - DEBUG - Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
2024-04-23 19:46:48,576 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-23 19:46:48,576 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: N/A ms, retry cnt: 1
2024-04-23 19:46:48,577 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-23 19:46:48,579 - MainThread connectionpool.py:1019 - _new_conn() - DEBUG - Starting new HTTPS connection (1): snowflake.cedarinternal.com:443
2024-04-23 19:46:48,773 - MainThread ssl_wrap_socket.py:79 - ssl_wrap_socket_with_ocsp() - DEBUG - OCSP Mode: FAIL_OPEN, OCSP response cache file name: None
2024-04-23 19:46:48,811 - MainThread ocsp_snowflake.py:492 - reset_cache_dir() - DEBUG - cache directory: /root/.cache/snowflake
2024-04-23 19:46:48,812 - MainThread ocsp_snowflake.py:530 - reset_ocsp_response_cache_uri() - DEBUG - ocsp_response_cache_uri: file:///root/.cache/snowflake/ocsp_response_cache.json
2024-04-23 19:46:48,812 - MainThread ocsp_snowflake.py:533 - reset_ocsp_response_cache_uri() - DEBUG - OCSP_VALIDATION_CACHE size: 209
2024-04-23 19:46:48,812 - MainThread ocsp_snowflake.py:332 - reset_ocsp_dynamic_cache_server_url() - DEBUG - OCSP response cache server is enabled: http://ocsp.snowflakecomputing.com/ocsp_response_cache.json
2024-04-23 19:46:48,812 - MainThread ocsp_snowflake.py:345 - reset_ocsp_dynamic_cache_server_url() - DEBUG - OCSP dynamic cache server RETRY URL: None
2024-04-23 19:46:48,812 - MainThread ocsp_snowflake.py:966 - validate() - DEBUG - validating certificate: snowflake.cedarinternal.com
2024-04-23 19:46:48,813 - MainThread ocsp_snowflake.py:972 - validate() - DEBUG - skipping OCSP check: snowflake.cedarinternal.com
2024-04-23 19:46:48,921 - MainThread connectionpool.py:474 - _make_request() - DEBUG - https://snowflake.cedarinternal.com:443 "POST /session/authenticator-request HTTP/1.1" 200 898
2024-04-23 19:46:48,922 - MainThread network.py:1092 - _request_exec() - DEBUG - SUCCESS
2024-04-23 19:46:48,923 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-23 19:46:48,923 - MainThread network.py:745 - _post_request() - DEBUG - ret[code] = None, after post request
2024-04-23 19:46:48,923 - MainThread webbrowser.py:158 - prepare() - DEBUG - Validate SSO URL
2024-04-23 19:46:48,924 - MainThread webbrowser.py:176 - prepare() - DEBUG - step 2: open a browser
2024-04-23 19:46:55,877 - MainThread _auth.py:174 - authenticate() - DEBUG - authenticate
2024-04-23 19:46:55,878 - MainThread _auth.py:208 - authenticate() - DEBUG - assertion content: 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
2024-04-23 19:46:55,878 - MainThread _auth.py:211 - authenticate() - DEBUG - account={os, user=rschack, database=cedar, schema=sandbox, warehouse=compute_wh, role=cedar_read_only, request_id=b1150965-6a2b-429a-b397-842471474eac
2024-04-23 19:46:55,879 - MainThread _auth.py:244 - authenticate() - DEBUG - body['data']: {'CLIENT_APP_ID': 'PythonConnector', 'CLIENT_APP_VERSION': '3.8.0', 'SVN_REVISION': None, 'ACCOUNT_NAME': '{os', 'LOGIN_NAME': 'rschack', 'CLIENT_ENVIRONMENT': {'APPLICATION': 'PythonConnector', 'OS': 'Linux', 'OS_VERSION': 'Linux-6.6.12-linuxkit-aarch64-with-glibc2.31', 'PYTHON_VERSION': '3.11.6', 'PYTHON_RUNTIME': 'CPython', 'PYTHON_COMPILER': 'GCC 10.2.1 20210110', 'OCSP_MODE': 'FAIL_OPEN', 'TRACING': 10, 'LOGIN_TIMEOUT': None, 'NETWORK_TIMEOUT': None, 'SOCKET_TIMEOUT': None}, 'AUTHENTICATOR': 'EXTERNALBROWSER', 'TOKEN': '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', 'PROOF_KEY': '+FTpknIkT21kmRj4T+2XvL5Fa2D7YsoWIGqNxFbUCLE=_-1_0', 'SESSION_PARAMETERS': {'CLIENT_PREFETCH_THREADS': 4, 'CLIENT_STORE_TEMPORARY_CREDENTIAL': False}}
2024-04-23 19:46:55,880 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-23 19:46:55,880 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: N/A ms, retry cnt: 1
2024-04-23 19:46:55,880 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-23 19:46:56,234 - MainThread connectionpool.py:474 - _make_request() - DEBUG - https://snowflake.cedarinternal.com:443 "POST /session/v1/login-request?request_id=b1150965-6a2b-429a-b397-842471474eac&databaseName=cedar&schemaName=sandbox&warehouse=compute_wh&roleName=cedar_read_only HTTP/1.1" 200 None
2024-04-23 19:46:56,236 - MainThread network.py:1092 - _request_exec() - DEBUG - SUCCESS
2024-04-23 19:46:56,237 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-23 19:46:56,237 - MainThread network.py:745 - _post_request() - DEBUG - ret[code] = None, after post request
2024-04-23 19:46:56,238 - MainThread _auth.py:371 - authenticate() - DEBUG - completed authentication
2024-04-23 19:46:56,238 - MainThread _auth.py:418 - authenticate() - DEBUG - token = ******
2024-04-23 19:46:56,239 - MainThread _auth.py:424 - authenticate() - DEBUG - master_token = ******
2024-04-23 19:46:56,239 - MainThread _auth.py:430 - authenticate() - DEBUG - id_token = NULL
2024-04-23 19:46:56,240 - MainThread _auth.py:436 - authenticate() - DEBUG - mfa_token = NULL
2024-04-23 19:46:58,533 - MainThread connection.py:830 - cursor() - DEBUG - cursor
2024-04-23 19:46:58,534 - MainThread cursor.py:910 - execute() - DEBUG - executing SQL/command
2024-04-23 19:46:58,534 - MainThread cursor.py:925 - execute() - DEBUG - query: [select 1 as id]
2024-04-23 19:46:58,534 - MainThread cursor.py:766 - _preprocess_pyformat_query() - DEBUG - binding: [select 1 as id] with input=[None], processed=[{}]
2024-04-23 19:46:58,535 - MainThread connection.py:1606 - _next_sequence_counter() - DEBUG - sequence counter: 1
2024-04-23 19:46:58,535 - MainThread cursor.py:640 - _execute_helper() - DEBUG - Request id: cff2fc3c-d595-413e-a1a2-7ea48ddb2cf9
2024-04-23 19:46:58,535 - MainThread cursor.py:642 - _execute_helper() - DEBUG - running query [select 1 as id]
2024-04-23 19:46:58,535 - MainThread cursor.py:649 - _execute_helper() - DEBUG - is_file_transfer: True
2024-04-23 19:46:58,536 - MainThread connection.py:1269 - cmd_query() - DEBUG - _cmd_query
2024-04-23 19:46:58,536 - MainThread _query_context_cache.py:155 - serialize_to_dict() - DEBUG - serialize_to_dict() called
2024-04-23 19:46:58,536 - MainThread connection.py:1296 - cmd_query() - DEBUG - sql=[select 1 as id], sequence_id=[1], is_file_transfer=[False]
2024-04-23 19:46:58,537 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-23 19:46:58,537 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: N/A ms, retry cnt: 1
2024-04-23 19:46:58,537 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-23 19:46:58,737 - MainThread connectionpool.py:474 - _make_request() - DEBUG - https://snowflake.cedarinternal.com:443 "POST /queries/v1/query-request?requestId=cff2fc3c-d595-413e-a1a2-7ea48ddb2cf9 HTTP/1.1" 200 None
2024-04-23 19:46:58,739 - MainThread network.py:1092 - _request_exec() - DEBUG - SUCCESS
2024-04-23 19:46:58,740 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-23 19:46:58,740 - MainThread network.py:745 - _post_request() - DEBUG - ret[code] = None, after post request
2024-04-23 19:46:58,740 - MainThread network.py:771 - _post_request() - DEBUG - Query id: 01b3de22-0409-85b1-0000-1ae935c79baa
2024-04-23 19:46:58,741 - MainThread _query_context_cache.py:189 - deserialize_json_dict() - DEBUG - deserialize_json_dict() called: data from server: {'entries': [{'id': 0, 'timestamp': 222767833098528, 'priority': 0}]}
2024-04-23 19:46:58,741 - MainThread _query_context_cache.py:230 - deserialize_json_dict() - DEBUG - deserialize {'id': 0, 'timestamp': 222767833098528, 'priority': 0}
2024-04-23 19:46:58,742 - MainThread _query_context_cache.py:101 - _sync_priority_map() - DEBUG - sync_priority_map called priority_map size = 0, new_priority_map size = 1
2024-04-23 19:46:58,742 - MainThread _query_context_cache.py:127 - trim_cache() - DEBUG - trim_cache() called. treeSet size is 1 and cache capacity is 5
2024-04-23 19:46:58,742 - MainThread _query_context_cache.py:136 - trim_cache() - DEBUG - trim_cache() returns. treeSet size is 1 and cache capacity is 5
2024-04-23 19:46:58,743 - MainThread _query_context_cache.py:269 - deserialize_json_dict() - DEBUG - deserialize_json_dict() returns
2024-04-23 19:46:58,743 - MainThread _query_context_cache.py:274 - log_cache_entries() - DEBUG - Cache Entry: (0, 222767833098528, 0)
2024-04-23 19:46:58,744 - MainThread cursor.py:983 - execute() - DEBUG - sfqid: 01b3de22-0409-85b1-0000-1ae935c79baa
2024-04-23 19:46:58,744 - MainThread cursor.py:989 - execute() - DEBUG - query execution done
2024-04-23 19:46:58,745 - MainThread cursor.py:1003 - execute() - DEBUG - SUCCESS
2024-04-23 19:46:58,745 - MainThread cursor.py:1022 - execute() - DEBUG - PUT OR GET: False
2024-04-23 19:46:58,746 - MainThread cursor.py:1135 - _init_result_and_meta() - DEBUG - Query result format: arrow
2024-04-23 19:46:58,746 - MainThread cursor.py:1149 - _init_result_and_meta() - INFO - Number of results in first chunk: 1
2024-04-23 19:47:00,538 - MainThread result_batch.py:68 - _create_nanoarrow_iterator() - DEBUG - Using nanoarrow as the arrow data converter
2024-04-23 19:47:00,538 - MainThread CArrowIterator.cpp:120 - CArrowIterator() - DEBUG - Arrow BatchSize: 1
2024-04-23 19:47:00,539 - MainThread CArrowChunkIterator.cpp:46 - CArrowChunkIterator() - DEBUG - Arrow chunk info: batchCount 1, columnCount 1, use_numpy: 0
2024-04-23 19:47:00,539 - MainThread nanoarrow_arrow_iterator.cpython-311-aarch64-linux-gnu.so:0 - __cinit__() - DEBUG - Batches read: 0
2024-04-23 19:47:00,540 - MainThread result_set.py:68 - result_set_iterator() - DEBUG - beginning to schedule result batch downloads
2024-04-23 19:47:00,540 - MainThread CArrowChunkIterator.cpp:70 - next() - DEBUG - Current batch index: 0, rows in current batch: 1
2024-04-23 19:47:02,414 - MainThread connection.py:758 - close() - INFO - closed
2024-04-23 19:47:02,414 - MainThread telemetry.py:211 - close() - DEBUG - Closing telemetry client.
2024-04-23 19:47:02,414 - MainThread connection.py:764 - close() - INFO - No async queries seem to be running, deleting session
2024-04-23 19:47:02,415 - MainThread network.py:1224 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 1/1 active sessions
2024-04-23 19:47:02,415 - MainThread network.py:875 - _request_exec_wrapper() - DEBUG - remaining request timeout: 5000 ms, retry cnt: 1
2024-04-23 19:47:02,415 - MainThread network.py:1065 - _request_exec() - DEBUG - socket timeout: 60
2024-04-23 19:47:02,529 - MainThread connectionpool.py:474 - _make_request() - DEBUG - https://snowflake.cedarinternal.com:443 "POST /session?delete=true HTTP/1.1" 200 None
2024-04-23 19:47:02,532 - MainThread network.py:1092 - _request_exec() - DEBUG - SUCCESS
2024-04-23 19:47:02,533 - MainThread network.py:1229 - _use_requests_session() - DEBUG - Session status for SessionPool 'snowflake.cedarinternal.com', SessionPool 0/1 active sessions
2024-04-23 19:47:02,534 - MainThread network.py:745 - _post_request() - DEBUG - ret[code] = None, after post request
2024-04-23 19:47:02,535 - MainThread _query_context_cache.py:141 - clear_cache() - DEBUG - clear_cache() called
2024-04-23 19:47:02,536 - MainThread connection.py:777 - close() - DEBUG - Session is closed

@sfc-gh-dszmolka
Copy link
Contributor

sfc-gh-dszmolka commented Apr 24, 2024

@rschack-cedar thank you for testing !

So getting the SAML assertion error means you actually got past the original error (http.client.RemoteDisconnected: Remote end closed connection without response) when not going through your reverse proxy at snowflake.cedarinternal.com , because now you could connect to Snowflake but since your SAML assertion is full of custom attributes which Snowflake does not necessary support (and to start with, the account attribute is missing), you get a different error back.
(You can look into the assertion by copypasting the content into a tool like samltool.io)

But that means you now at least could connect to Snowflake (and the auth attempt was refused), contrary to the prior status of the connection being unexpectedly closed down by the proxy)

I would guess the SAML response is purposefully built in such a way for your company because you depend on the various attributes, this is not a problem.

How to proceed with this issue?

  1. a possible way would be to debug this together with the people who have access to the reverse proxy internals, and see why it resets the connection in certain occasions
  2. or if you're up for experimenting more, you can set up a different (e.g. dev) Okta account to not interfere with your production settings (there are multiple guides, for example this) , with a test account which does not have the proxy in front of it and connect to it.
    I had such a scenario in my repro and worked , of course it assumes the port is forwarded out of the container and you're able to copy/paste the Okta URL and the authentication response from, and back to the PythonConnector prompt.

@rschack-cedar
Copy link
Author

@sfc-gh-dszmolka Thanks David, I will investigate our reverse proxy (Cyral) in more detail. We were able to temporarily disable it, and I could connect to Snowflake (after removing the host and port params).

@sfc-gh-dszmolka
Copy link
Contributor

this is good news, thank you for letting me know ! Now the investigation can be focused at least.
Speaking about which, if you don't need further help with this one, I recommend marking this issue as closed as it doesn't seem to be with the Snowflake Python Connector.

@sfc-gh-dszmolka sfc-gh-dszmolka removed bug status-information_needed Additional information is required from the reporter status-triage Issue is under initial triage labels Apr 26, 2024
@sfc-gh-dszmolka sfc-gh-dszmolka added question status-triage_done Initial triage done, will be further handled by the driver team labels Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question status-triage_done Initial triage done, will be further handled by the driver team
Projects
None yet
Development

No branches or pull requests

2 participants