[
https://issues.apache.org/jira/browse/IMPALA-11755?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Smith resolved IMPALA-11755.
------------------------------------
Fix Version/s: Impala 4.3.0
Resolution: Fixed
> Impala-shell ldap_password_cmd fails on Python 3.8
> --------------------------------------------------
>
> Key: IMPALA-11755
> URL: https://issues.apache.org/jira/browse/IMPALA-11755
> Project: IMPALA
> Issue Type: Bug
> Components: Clients
> Affects Versions: Impala 4.2.0
> Reporter: Michael Smith
> Assignee: Michael Smith
> Priority: Major
> Labels: python3
> Fix For: Impala 4.3.0
>
>
> Python 2 - Works
> {code:java}
> (impala-shell-py2) ➜ ~ python --version
> Python 2.7.18
> (impala-shell-py2) ➜ ~ impala-shell --protocol='hs2-http' --ssl -i
> 'coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443' -u
> clevesque -l --ldap_password_cmd='echo -n password'
> Starting Impala Shell with LDAP-based authentication using Python 2.7.18
> SSL is enabled. Impala server certificates will NOT be verified (set
> --ca_cert to change)
> Warning: --connect_timeout_ms is currently ignored with HTTP transport.
> Opened TCP connection to
> coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443
> Connected to
> coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443
> Server version: impalad version 4.0.0.2022.0.10.1-8 RELEASE (build
> 6ce64f72f0795f7331c93f1d1679a6426c33592d)
> ***********************************************************************************
> Welcome to the Impala shell.
> (Impala Shell v4.1.1-RELEASE (1d7b631) built on Mon Oct 17 14:08:01 PDT
> 2022)You can change the Impala daemon that you're connected to by using the
> CONNECT
> command.To see how Impala will plan to run your query without actually
> executing
> it, use the EXPLAIN command. You can change the level of detail in the EXPLAIN
> output by setting the EXPLAIN_LEVEL query option.
> ***********************************************************************************
> [coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443]
> default>
> [coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443]
> default> Goodbye clevesque {code}
> Python 3.8
> {code:java}
> (python38-impala-shell) ➜ ~ python --version
> Python 3.8.15
> (python38-impala-shell) ➜ ~
> (python38-impala-shell) ➜ ~ impala-shell --protocol='hs2-http' --ssl -i
> 'coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443' -u
> clevesque -l --ldap_password_cmd='echo -n password'
> Starting Impala Shell with LDAP-based authentication using Python 3.8.15
> SSL is enabled. Impala server certificates will NOT be verified (set
> --ca_cert to change)
> Warning: --connect_timeout_ms is currently ignored with HTTP transport.
> Opened TCP connection to
> coordinator-impala-default.apps.ecs.sme-clev.athens.cloudera.com:443
> Caught exception HTTP code 401: Unauthorized, type=<class
> 'shell_exceptions.HttpError'> in OpenSession. Num remaining tries: 3
> Caught exception HTTP code 401: Unauthorized, type=<class
> 'shell_exceptions.HttpError'> in OpenSession. Num remaining tries: 2
> Caught exception HTTP code 401: Unauthorized, type=<class
> 'shell_exceptions.HttpError'> in OpenSession. Num remaining tries: 1
> Caught exception HTTP code 401: Unauthorized, type=<class
> 'shell_exceptions.HttpError'> in OpenSession. Num remaining tries: 0
> Traceback (most recent call last):
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_shell.py",
> line 1006, in _connect
> self.server_version, self.webserver_address = self.imp_client.connect()
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_client.py",
> line 184, in connect
> self._open_session()
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_client.py",
> line 677, in _open_session
> resp = self._do_hs2_rpc(OpenSession, retry_on_error=True)
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_client.py",
> line 1021, in _do_hs2_rpc
> return rpc()
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_client.py",
> line 673, in OpenSession
> return self.imp_service.OpenSession(open_session_req)
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/TCLIService/TCLIService.py",
> line 188, in OpenSession
> self.send_OpenSession(req)
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/TCLIService/TCLIService.py",
> line 197, in send_OpenSession
> self._oprot.trans.flush()
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/thrift/transport/TTransport.py",
> line 178, in flush
> self.__trans.flush()
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/ImpalaHttpClient.py",
> line 275, in flush
> raise HttpError(self.code, self.message, body, self.headers)
> shell_exceptions.HttpError: HTTP code 401: UnauthorizedDuring handling of the
> above exception, another exception occurred:Traceback (most recent call last):
> File "/home/manishm/.virtualenvs/python38-impala-shell/bin/impala-shell",
> line 8, in <module>
> sys.exit(impala_shell_main())
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_shell.py",
> line 2111, in impala_shell_main
> with ImpalaShell(options, query_options) as shell:
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_shell.py",
> line 294, in __init__
> self.do_connect(options.impalad)
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_shell.py",
> line 952, in do_connect
> self._connect()
> File
> "/home/manishm/.virtualenvs/python38-impala-shell/lib/python3.8/site-packages/impala_shell/impala_shell.py",
> line 1046, in _connect
> self.ldap_password.endswith('\n'):
> TypeError: endswith first arg must be bytes or a tuple of bytes, not str
> (python38-impala-shell) ➜ ~
> {code}
> Can we please test and fix for all supported Python 3 versions.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]