Created on 08-28-2018 06:23 PM - edited 09-16-2022 06:38 AM
Using HDP-2.6.4.0. Enabled apache superset service. Service start is failing with following error. I am using postgresql as database for storing superset metadata.
2018-08-28 10:05:16,587:INFO:root:Creating database reference
Loaded your LOCAL configuration
Traceback (most recent call last):
File "/usr/hdp/current/superset/bin/superset", line 85, in <module>
manager.run()
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/flask_script/__init__.py", line 412, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/flask_script/__init__.py", line 383, in handle
res = handle(*args, **config)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/flask_script/commands.py", line 216, in __call__
return self.run(*args, **kwargs)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/superset/cli.py", line 27, in init
security.sync_role_definitions()
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/superset/security.py", line 122, in sync_role_definitions
get_or_create_main_db()
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/superset/security.py", line 96, in get_or_create_main_db
.filter_by(database_name='main')
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 2690, in first
ret = list(self[0:1])
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 2482, in __getitem__
return list(res)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/loading.py", line 90, in instances
util.raise_from_cause(err)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
raise value
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/loading.py", line 75, in instances
rows = [proc(row) for row in fetch]
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/loading.py", line 75, in <listcomp>
rows = [proc(row) for row in fetch]
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/loading.py", line 437, in _instance
loaded_instance, populate_existing, populators)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/orm/loading.py", line 498, in _populate_full
dict_[key] = getter(row)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy/sql/type_api.py", line 1122, in process
return process_value(impl_processor(value), dialect)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy_utils/types/encrypted.py", line 266, in process_result_value
decrypted_value = self.engine.decrypt(value)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/sqlalchemy_utils/types/encrypted.py", line 90, in decrypt
decrypted = base64.b64decode(value)
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/base64.py", line 90, in b64decode
return binascii.a2b_base64(s)
binascii.Error: Incorrect paddingLooks like a malformed string getting passed to base64.b64decode() function
Created 08-29-2018 01:06 AM
Can you please check if you have the UTF-8 encoding set for your database?
postgres=# \c superset superset=# SHOW SERVER_ENCODING;
.
Also if it is a fresh Superset installation which is failing so in that case can you try reinstalling the Superset (after dropping/cleaning the superset database Or after taking a DB dump as a backup) ?
Also during Superset installation did you notice any error/warning in Postgres Database log related to encryption related to SECRET_KEY Or did you notice any error/warning in the "/var/log/ambari-server/ambari-server.log" Or on the "/var/log/ambari-agent/ambari-agent.log" on the host where Superset was being installed?
Created 08-29-2018 04:51 AM
See postgres command output as following
superset=# SHOW SERVER_ENCODING; server_encoding ----------------- UTF8 (1 row)ambari-agent log has following
INFO 2018-08-28 12:50:19,237 PythonExecutor.py:130 - Command ['/usr/bin/python', '/var/lib/ambari-agent/cache/common-services/SUPERSET/0.15.0/package/scripts/superset.py', 'START', '/var/lib/ambari-agent/data/command-1688.json', '/var/lib/ambari-agent/cache/common-services/SUPERSET/0.15.0/package', '/var/lib/ambari-agent/data/structured-out-1688.json', 'INFO', '/var/lib/ambari-agent/tmp', 'PROTOCOL_TLSv1', ''] failed with exitcode=1
Created 08-29-2018 05:05 AM
I have added some print statement in the code where the exception is happening as i thought the issue was with python base64 encoding problem with padding. But looks like the the string passed to base64.b64decode() itself is malformed. See following log
2018-08-28 12:50:18,780:INFO:root:Syncing role definition
2018-08-28 12:50:18,800:INFO:root:Creating database reference
Loaded your LOCAL configuration
value: b'x393565452f683845463837555032666d5941577164673d3d'
Traceback (most recent call last):
File "/usr/hdp/current/superset/bin/superset", line 85, in <module>
manager.run()
File "/usr/hdp/2.6.4.0-91/superset/lib/python3.4/site-packages/flask_script/__init__.py", line 412, in run
result = self.handle(sys.argv[0], sys.argv[1:])