You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2022/08/14 12:31:33 UTC

[GitHub] [superset] mdeshmu commented on issue #21080: cannot connect to redshift from superset ui when using iam authentication

mdeshmu commented on issue #21080:
URL: https://github.com/apache/superset/issues/21080#issuecomment-1214362451

   Stack trace of sqlalchemy-redshift + redshift_connector 
   ```
   root@ip-:/app# python3
   Python 3.8.12 (default, Mar  2 2022, 04:56:27)
   [GCC 10.2.1 20210110] on linux
   Type "help", "copyright", "credits" or "license" for more information.
   >>> import redshift_connector
   >>> import logging
   >>> import sys
   >>> import sqlalchemy as sa
   >>> logger = logging.getLogger()
   >>> logger.setLevel(logging.DEBUG)
   >>> handler = logging.StreamHandler(sys.stdout)
   >>> handler.setLevel(logging.DEBUG)
   >>> formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
   >>> handler.setFormatter(formatter)
   >>> logger.addHandler(handler)
   >>> engine = sa.create_engine('redshift+redshift_connector:///databasename', connect_args={'iam': 'True', 'ssl': 'True', 'database': 'databasename', 'db_user': 'dbuser', 'cluster_identifier': 'clusteridentifier'})                                                                             
   >>> connection = engine.connect()
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - ===================================
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - User provided connection arguments
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - ===================================
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - {'access_key_id': None, 'allow_db_user_override': False, 'app_id': None, 'app_name': 'amazon_aws_redshift', 'application_name': 'sqlalchemy-redshift', 'auth_profile': None, 'auto_create': False, 'client_id': None, 'client_protocol_version': 2, 'client_secret': None, 'cluster_identifier': 'clusteridentifier', 'credentials_provider': None, 'database_metadata_current_db_only': True, 'db_groups': [], 'db_name': 'databasename', 'db_user': 'dbuser', 'duration': 900, 'endpoint_url': None, 'force_lowercase': False, 'host': '', 'iam': 'True', 'iam_disable_cache': False, 'idp_host': None, 'idp_response_timeout': 120, 'idp_tenant': None, 'idpPort': 443, 'listen_port': 7890, 'login_url': None, 'max_prepared_statements': 1000, 'partner_sp_id': None, 'password': '', 'port': 5439, 'preferred_role': None, 'principal': None, 'profile': None, 'region': None, 'replication': None, 'role_arn': None, 'role_session_name': None, 'secret_access_key': 
 None, 'session_token': None, 'source_address': None, 'ssl': 'True', 'ssl_insecure': True, 'sslmode': 'verify-full', 'tcp_keepalive': True, 'timeout': None, 'unix_sock': None, 'user_name': '', 'web_identity_token': None, 'provider_name': None, 'scope': '', 'numeric_to_float': False, 'is_serverless': False, 'serverless_acct_id': None, 'serverless_work_group': None, 'group_federation': False, 'is_serverless_host': False, '_is_serverless': False}
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - ===================================
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - ===================================
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - Connection arguments following validation and IAM auth (if applicable)
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - ===================================
   2022-08-14 12:04:28,609 - redshift_connector - DEBUG - {'access_key_id': None, 'allow_db_user_override': False, 'app_id': None, 'app_name': 'amazon_aws_redshift', 'application_name': 'sqlalchemy-redshift', 'auth_profile': None, 'auto_create': False, 'client_id': None, 'client_protocol_version': 2, 'client_secret': None, 'cluster_identifier': 'clusteridentifier', 'credentials_provider': None, 'database_metadata_current_db_only': True, 'db_groups': [], 'db_name': 'databasename', 'db_user': 'dbuser', 'duration': 900, 'endpoint_url': None, 'force_lowercase': False, 'host': '', 'iam': 'True', 'iam_disable_cache': False, 'idp_host': None, 'idp_response_timeout': 120, 'idp_tenant': None, 'idpPort': 443, 'listen_port': 7890, 'login_url': None, 'max_prepared_statements': 1000, 'partner_sp_id': None, 'password': '', 'port': 5439, 'preferred_role': None, 'principal': None, 'profile': None, 'region': None, 'replication': None, 'role_arn': None, 'role_session_name': None, 'secret_access_key': 
 None, 'session_token': None, 'source_address': None, 'ssl': 'True', 'ssl_insecure': True, 'sslmode': '', 'tcp_keepalive': True, 'timeout': None, 'unix_sock': None, 'user_name': '', 'web_identity_token': None, 'provider_name': None, 'scope': '', 'numeric_to_float': False, 'is_serverless': False, 'serverless_acct_id': None, 'serverless_work_group': None, 'group_federation': False, 'is_serverless_host': False, '_is_serverless': False}
   2022-08-14 12:04:28,610 - redshift_connector - DEBUG - ===================================
   2022-08-14 12:04:28,610 - redshift_connector.cursor - DEBUG - Cursor.paramstyle=named
   2022-08-14 12:04:28,611 - redshift_connector.core - DEBUG - ===================================
   2022-08-14 12:04:28,611 - redshift_connector.core - DEBUG - Establishing a connection
   2022-08-14 12:04:28,611 - redshift_connector.core - DEBUG - {'user': '', 'database': 'databasename', 'application_name': 'sqlalchemy-redshift', 'replication': None, 'client_protocol_version': '2', 'driver_version': 'Redshift Python Driver 2.0.908', 'os_version': 'Linux-4.14.281-212.502.amzn2.x86_64-x86_64-with-glibc2.2.5'}
   2022-08-14 12:04:28,612 - redshift_connector.core - DEBUG - ===================================
   Traceback (most recent call last):
     File "/usr/local/lib/python3.8/site-packages/redshift_connector/core.py", line 585, in __init__
       self._usock.connect((host, port))
   ConnectionRefusedError: [Errno 111] Connection refused
   
   During handling of the above exception, another exception occurred:
   
   Traceback (most recent call last):
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
       return fn()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 304, in unique_connection
       return _ConnectionFairy._checkout(self)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
       fairy = _ConnectionRecord.checkout(pool)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 495, in checkout
       rec = pool._do_get()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 140, in _do_get
       self._dec_overflow()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
       compat.raise_(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
       raise exception
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 137, in _do_get
       return self._create_connection()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 309, in _create_connection
       return _ConnectionRecord(self)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 440, in __init__
       self.__connect(first_connect_check=True)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
       pool.logger.debug("Error on connect(): %s", e)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
       compat.raise_(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
       raise exception
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
       connection = pool._invoke_creator(self)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
       return dialect.connect(*cargs, **cparams)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 508, in connect
       return self.dbapi.connect(*cargs, **cparams)
     File "/usr/local/lib/python3.8/site-packages/redshift_connector/__init__.py", line 340, in connect
       return Connection(
     File "/usr/local/lib/python3.8/site-packages/redshift_connector/core.py", line 632, in __init__
       raise InterfaceError("communication error", e)
   redshift_connector.error.InterfaceError: ('communication error', ConnectionRefusedError(111, 'Connection refused'))
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2263, in connect
       return self._connection_cls(self, **kwargs)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 104, in __init__
       else engine.raw_connection()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2369, in raw_connection
       return self._wrap_pool_connect(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
       Connection._handle_dbapi_exception_noconnection(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1583, in _handle_dbapi_exception_noconnection
       util.raise_(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
       raise exception
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
       return fn()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 304, in unique_connection
       return _ConnectionFairy._checkout(self)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
       fairy = _ConnectionRecord.checkout(pool)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 495, in checkout
       rec = pool._do_get()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 140, in _do_get
       self._dec_overflow()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
       compat.raise_(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
       raise exception
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 137, in _do_get
       return self._create_connection()
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 309, in _create_connection
       return _ConnectionRecord(self)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 440, in __init__
       self.__connect(first_connect_check=True)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
       pool.logger.debug("Error on connect(): %s", e)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
       compat.raise_(
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
       raise exception
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
       connection = pool._invoke_creator(self)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
       return dialect.connect(*cargs, **cparams)
     File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 508, in connect
       return self.dbapi.connect(*cargs, **cparams)
     File "/usr/local/lib/python3.8/site-packages/redshift_connector/__init__.py", line 340, in connect
       return Connection(
     File "/usr/local/lib/python3.8/site-packages/redshift_connector/core.py", line 632, in __init__
       raise InterfaceError("communication error", e)
   sqlalchemy.exc.InterfaceError: (redshift_connector.error.InterfaceError) ('communication error', ConnectionRefusedError(111, 'Connection refused'))
   (Background on this error at: http://sqlalche.me/e/13/rvf5)
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org