cloudera / hue

Open source SQL Query Assistant service for Databases/Warehouses
https://cloudera.com
Apache License 2.0
1.17k stars 366 forks source link

ERROR thrift_util : Unable to unpack the secret and guid in Thrift Handle #1961

Closed vatranos closed 3 years ago

vatranos commented 3 years ago

I'm trying to create an environment with Hue, Impala, and Kudu. To implement the test environment, create a yaml with the necessary settings. The Kudu and Impala services run correctly and statements can be executed without problems from the kudu-impala container with the impala-shell. However, Hue is having trouble connecting to the Impala service. It always presents the following error:

kudu-hue_1        | [2021-03-31 13:39:28 +0000] [40] [DEBUG] POST /notebook/api/execute/impala
kudu-hue_1        | [31/Mar/2021 06:39:28 -0700] access       INFO     10.244.89.18 admin - "POST /notebook/api/close_statement HTTP/1.1" returned in 58ms 200 67
kudu-hue_1        | [31/Mar/2021 06:39:28 -0700] access       INFO     10.244.89.18 admin - "POST /notebook/api/close_statement HTTP/1.1" returned in 58ms 200 67
kudu-hue_1        | 10.244.89.18 - - [31/Mar/2021:13:39:28 +0000] "POST /notebook/api/close_statement HTTP/1.1" 200 67 "http://myhost:8888/hue/editor?editor=38&type=impala" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
kudu-hue_1        | [31/Mar/2021 06:39:28 -0700] thrift_util  WARNING  Unable to unpack the secret and guid in Thrift Handle: unpack requires a buffer of 16 bytes
kudu-hue_1        | [31/Mar/2021 06:39:28 -0700] decorators   ERROR    Error running execute
kudu-hue_1        | Traceback (most recent call last):
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/connectors/hiveserver2.py", line 301, in execute
kudu-hue_1        |     result = db.use(query.database, session=_session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/dbms.py", line 956, in use
kudu-hue_1        |     return self.client.use(query, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 1435, in use
kudu-hue_1        |     data = self._client.execute_query(query, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 950, in execute_query
kudu-hue_1        |     return self.execute_query_statement(statement=query.query['query'], max_rows=max_rows, configuration=configuration, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 963, in execute_query_statement
kudu-hue_1        |     session=session
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 1001, in execute_statement
kudu-hue_1        |     (res, session) = self.call(self._client.ExecuteStatement, req, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 728, in call
kudu-hue_1        |     return self.call_return_result_and_session(fn, req, status, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 742, in call_return_result_and_session
kudu-hue_1        |     return self._call_return_result_and_session(fn, req, status=status, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 790, in _call_return_result_and_session
kudu-hue_1        |     raise QueryServerException(Exception(message), message=message)
kudu-hue_1        | beeswax.server.dbms.QueryServerException: Malformed THandleIdentifier (guid size: 17, expected 16, secret size: 17, expected 16)
kudu-hue_1        | During handling of the above exception, another exception occurred:
kudu-hue_1        | Traceback (most recent call last):
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/decorators.py", line 114, in wrapper
kudu-hue_1        |     return f(*args, **kwargs)
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/api.py", line 235, in execute
kudu-hue_1        |     response = _execute_notebook(request, notebook, snippet)
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/api.py", line 210, in _execute_notebook
kudu-hue_1        |     raise ex
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/api.py", line 160, in _execute_notebook
kudu-hue_1        |     response['handle'] = interpreter.execute(notebook, snippet)
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/connectors/hiveserver2.py", line 98, in decorator
kudu-hue_1        |     return func(*args, **kwargs)
kudu-hue_1        |   File "/usr/share/hue/desktop/libs/notebook/src/notebook/connectors/hiveserver2.py", line 306, in execute
kudu-hue_1        |     raise QueryError(ex.message, handle=statement)
kudu-hue_1        | notebook.connectors.base.QueryError: Malformed THandleIdentifier (guid size: 17, expected 16, secret size: 17, expected 16)

To make it available to everyone, in the following link I shared all the files (doocker-compose.yml, hue.ini, etc ...): https://github.com/vatranos/kudu

Thank you so much!

romainr commented 3 years ago

This was fixed recently, could you rebase?

vatranos commented 3 years ago

OK. I removed all the containers and images of hue from the docker. I ran the docker-compose again with the latest image tagged "image: gethue/hue:latest" . Now the error changes:

kudu-hue_1        | [31/Mar/2021 09:58:43 -0700] access       INFO     10.107.163.81 admin - "POST /notebook/api/autocomplete/ HTTP/1.1" returned in 45ms 200 657
kudu-hue_1        | 10.107.163.81 - - [31/Mar/2021:16:58:43 +0000] "POST /notebook/api/autocomplete/ HTTP/1.1" 200 657 "http://aphbaserptp02:8888/hue/editor/?type=impala" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
kudu-hue_1        | [2021-03-31 16:58:43 +0000] [40] [DEBUG] POST /notebook/api/autocomplete/
kudu-hue_1        | [31/Mar/2021 09:58:43 -0700] hive_server2_lib INFO     Opening impala thrift session for user admin
kudu-hue_1        | [31/Mar/2021 09:58:43 -0700] api          ERROR    Autocomplete data fetching error
kudu-hue_1        | Traceback (most recent call last):
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/api.py", line 116, in _autocomplete
kudu-hue_1        |     response['functions'] = _get_functions(db, database)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/api.py", line 188, in _get_functions
kudu-hue_1        |     functions = db.get_functions(prefix=database)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/dbms.py", line 1174, in get_functions
kudu-hue_1        |     handle = self.execute_and_wait(query, timeout_sec=5.0)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/dbms.py", line 980, in execute_and_wait
kudu-hue_1        |     handle = self.client.query(query)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 1424, in query
kudu-hue_1        |     return self._client.execute_async_query(query, statement, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 992, in execute_async_query
kudu-hue_1        |     return self.execute_async_statement(statement=query_statement, conf_overlay=configuration, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 1025, in execute_async_statement
kudu-hue_1        |     (res, session) = self.call_return_result_and_session(thrift_function, thrift_request, session=session)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 769, in call_return_result_and_session
kudu-hue_1        |     session = self.open_session(self.user)
kudu-hue_1        |   File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 701, in open_session
kudu-hue_1        |     raise QueryServerException(Exception('Bad status for request %s:\n%s' % (req, res)), message=message)
kudu-hue_1        | beeswax.server.dbms.QueryServerException: Bad status for request TOpenSessionReq(client_protocol=10, username='hue', password=None, configuration={'impala.doas.user': 'admin', 'idle_session_timeout': '900'}):
kudu-hue_1        | TOpenSessionResp(status=TStatus(statusCode=3, infoMessages=None, sqlState='HY000', errorCode=None, errorMessage="User 'hue' is not authorized to delegate to 'admin'. User/group delegation is disabled.\n"), serverProtocolVersion=5, sessionHandle=TSessionHandle(sessionId=THandleIdentifier(guid=b'\xcf\xd6!\xb7{sC\x17\xbd\xc8\x82<\xa9\x9f\x15\xfe', secret=b'\xf4\xc1\xab\x12X\x17D9\xac\x06\xc8\xd8k\xa8\xd1{')), configuration=None)

I will try to search in hue.ini for an option that will help me, but I wanted to give you the feedback

romainr commented 3 years ago

Look again in [impala] and disable the impersonation

On Wed, Mar 31, 2021 at 10:12 AM vatranos @.***> wrote:

OK. I removed all the containers and images of hue from the docker. I ran the docker-compose again with the latest image tagged "image: gethue/hue:latest" . Now the error changes:

kudu-hue_1 | [31/Mar/2021 09:58:43 -0700] access INFO 10.107.163.81 admin - "POST /notebook/api/autocomplete/ HTTP/1.1" returned in 45ms 200 657 kudu-hue_1 | 10.107.163.81 - - [31/Mar/2021:16:58:43 +0000] "POST /notebook/api/autocomplete/ HTTP/1.1" 200 657 "http://aphbaserptp02:8888/hue/editor/?type=impala" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" kudu-hue_1 | [2021-03-31 16:58:43 +0000] [40] [DEBUG] POST /notebook/api/autocomplete/ kudu-hue_1 | [31/Mar/2021 09:58:43 -0700] hive_server2_lib INFO Opening impala thrift session for user admin kudu-hue_1 | [31/Mar/2021 09:58:43 -0700] api ERROR Autocomplete data fetching error kudu-hue_1 | Traceback (most recent call last): kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/api.py", line 116, in _autocomplete kudu-hue_1 | response['functions'] = _get_functions(db, database) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/api.py", line 188, in _get_functions kudu-hue_1 | functions = db.get_functions(prefix=database) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/dbms.py", line 1174, in get_functions kudu-hue_1 | handle = self.execute_and_wait(query, timeout_sec=5.0) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/dbms.py", line 980, in execute_and_wait kudu-hue_1 | handle = self.client.query(query) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 1424, in query kudu-hue_1 | return self._client.execute_async_query(query, statement, session=session) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 992, in execute_async_query kudu-hue_1 | return self.execute_async_statement(statement=query_statement, conf_overlay=configuration, session=session) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 1025, in execute_async_statement kudu-hue_1 | (res, session) = self.call_return_result_and_session(thrift_function, thrift_request, session=session) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 769, in call_return_result_and_session kudu-hue_1 | session = self.open_session(self.user) kudu-hue_1 | File "/usr/share/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py", line 701, in open_session kudu-hue_1 | raise QueryServerException(Exception('Bad status for request %s:\n%s' % (req, res)), message=message) kudu-hue_1 | beeswax.server.dbms.QueryServerException: Bad status for request TOpenSessionReq(client_protocol=10, username='hue', password=None, configuration={'impala.doas.user': 'admin', 'idle_session_timeout': '900'}): kudu-hue_1 | TOpenSessionResp(status=TStatus(statusCode=3, infoMessages=None, sqlState='HY000', errorCode=None, errorMessage="User 'hue' is not authorized to delegate to 'admin'. User/group delegation is disabled.\n"), serverProtocolVersion=5, sessionHandle=TSessionHandle(sessionId=THandleIdentifier(guid=b'\xcf\xd6!\xb7{sC\x17\xbd\xc8\x82<\xa9\x9f\x15\xfe', secret=b'\xf4\xc1\xab\x12X\x17D9\xac\x06\xc8\xd8k\xa8\xd1{')), configuration=None)

I will try to search in hue.ini for an option that will help me, but I wanted to give you the feedback

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cloudera/hue/issues/1961#issuecomment-811261933, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAEMGKLG33QS7AYCAW6O4DTGNJYPANCNFSM42E3BGLQ .

vatranos commented 3 years ago

Great. It works well. Thanks a lot!