iercan opened a new issue, #29728:
URL: https://github.com/apache/superset/issues/29728

   ### Bug description
   
   I'm testing version 4.1.0rc1, but migration fails due to unreachable 
databases, resulting in the following error:
   ```
   Loaded your LOCAL configuration at [/app/pythonpath/superset_config.py]
   INFO  [alembic.runtime.migration] Context impl MySQLImpl.
   INFO  [alembic.runtime.migration] Will assume transactional DDL.
   INFO  [alembic.runtime.migration] Running upgrade 17fcea065655 -> 
be1b217cd8cd, big_number_kpi_single_metric
   INFO  [alembic.runtime.migration] Running upgrade be1b217cd8cd -> 
678eefb4ab44, Add access token table
   INFO  [alembic.runtime.migration] Running upgrade 678eefb4ab44 -> 
c22cb5c2e546, empty message
   INFO  [alembic.runtime.migration] Running upgrade c22cb5c2e546 -> 
5ad7321c2169, mig new csv upload perm
   INFO  [alembic.runtime.migration] Running upgrade 5ad7321c2169 -> 
d60591c5515f, mig new excel upload perm
   INFO  [alembic.runtime.migration] Running upgrade d60591c5515f -> 
5f57af97bc3f, Add catalog column
   INFO  [alembic.runtime.migration] Running upgrade 5f57af97bc3f -> 
3dfd0e78650e, add_query_sql_editor_id_index
   INFO  [alembic.runtime.migration] Running upgrade 5f57af97bc3f -> 
4a33124c18ad, mig new columnar upload perm
   INFO  [alembic.runtime.migration] Running upgrade 4a33124c18ad -> 
58d051681a3b, Add catalog_perm to tables
   Traceback (most recent call last):
     File "/app/superset/migrations/shared/catalogs.py", line 177, in 
upgrade_schema_perms
       schemas = database.get_all_schema_names(
     File "/app/superset/utils/cache.py", line 127, in wrapped_f
       return f(*args, **kwargs)
     File "/app/superset/models/core.py", line 846, in get_all_schema_names
       raise self.db_engine_spec.get_dbapi_mapped_exception(ex) from ex
     File "/app/superset/models/core.py", line 840, in get_all_schema_names
       with self.get_inspector(
     File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
       return next(self.gen)
     File "/app/superset/models/core.py", line 820, in get_inspector
       yield sqla.inspect(engine)
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/inspection.py", 
line 64, in inspect
       ret = reg(subject)
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 
182, in _engine_insp
       return Inspector._construct(Inspector._init_engine, bind)
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 
117, in _construct
       init(self, bind)
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 
128, in _init_engine
       engine.connect().close()
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 3325, in connect
       return self._connection_cls(self, close_with_result=close_with_result)
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 96, in __init__
       else engine.raw_connection()
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 3404, in raw_connection
       return self._wrap_pool_connect(self.pool.connect, _connection)
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 3374, in _wrap_pool_connect
       Connection._handle_dbapi_exception_noconnection(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 2208, in _handle_dbapi_exception_noconnection
       util.raise_(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 3371, in _wrap_pool_connect
       return fn()
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 327, in connect
       return _ConnectionFairy._checkout(self)
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 894, in _checkout
       fairy = _ConnectionRecord.checkout(pool)
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 493, in checkout
       rec = pool._do_get()
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", 
line 256, in _do_get
       return self._create_connection()
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 273, in _create_connection
       return _ConnectionRecord(self)
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 388, in __init__
       self.__connect()
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 690, in __connect
       with util.safe_reraise():
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 
70, in __exit__
       compat.raise_(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", 
line 686, in __connect
       self.dbapi_connection = connection = pool._invoke_creator(self)
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 
574, in connect
       return dialect.connect(*cargs, **cparams)
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
598, in connect
       return self.dbapi.connect(*cargs, **cparams)
     File 
"/app/superset_home/.local/lib/python3.10/site-packages/psycopg2/__init__.py", 
line 122, in connect
       conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
   sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not 
translate host name "poodahslave03" to address: Name or service not known
   
   (Background on this error at: https://sqlalche.me/e/14/e3q8)
   
   During handling of the above exception, another exception occurred:
   
   Traceback (most recent call last):
     File 
"/app/superset_home/.local/lib/python3.10/site-packages/MySQLdb/cursors.py", 
line 200, in _mogrify
       query = query % args
   TypeError: not enough arguments for format string
   
   During handling of the above exception, another exception occurred:
   
   Traceback (most recent call last):
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
       self.dialect.do_execute(
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
736, in do_execute
       cursor.execute(statement, parameters)
     File 
"/app/superset_home/.local/lib/python3.10/site-packages/MySQLdb/cursors.py", 
line 176, in execute
       mogrified_query = self._mogrify(query, args)
     File 
"/app/superset_home/.local/lib/python3.10/site-packages/MySQLdb/cursors.py", 
line 202, in _mogrify
       raise ProgrammingError(str(m))
   MySQLdb.ProgrammingError: not enough arguments for format string
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "/usr/local/bin/superset", line 8, in <module>
       sys.exit(superset())
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1157, 
in __call__
       return self.main(*args, **kwargs)
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1078, 
in main
       rv = self.invoke(ctx)
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1688, 
in invoke
       return _process_result(sub_ctx.command.invoke(sub_ctx))
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1688, 
in invoke
       return _process_result(sub_ctx.command.invoke(sub_ctx))
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1434, 
in invoke
       return ctx.invoke(self.callback, **ctx.params)
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 783, in 
invoke
       return __callback(*args, **kwargs)
     File "/usr/local/lib/python3.10/site-packages/click/decorators.py", line 
33, in new_func
       return f(get_current_context(), *args, **kwargs)
     File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 358, in 
decorator
       return __ctx.invoke(f, *args, **kwargs)
     File "/usr/local/lib/python3.10/site-packages/click/core.py", line 783, in 
invoke
       return __callback(*args, **kwargs)
     File "/usr/local/lib/python3.10/site-packages/flask_migrate/cli.py", line 
149, in upgrade
       _upgrade(directory, revision, sql, tag, x_arg)
     File "/usr/local/lib/python3.10/site-packages/flask_migrate/__init__.py", 
line 98, in wrapped
       f(*args, **kwargs)
     File "/usr/local/lib/python3.10/site-packages/flask_migrate/__init__.py", 
line 185, in upgrade
       command.upgrade(config, revision, sql=sql, tag=tag)
     File "/usr/local/lib/python3.10/site-packages/alembic/command.py", line 
403, in upgrade
       script.run_env()
     File "/usr/local/lib/python3.10/site-packages/alembic/script/base.py", 
line 583, in run_env
       util.load_python_file(self.dir, "env.py")
     File "/usr/local/lib/python3.10/site-packages/alembic/util/pyfiles.py", 
line 95, in load_python_file
       module = load_module_py(module_id, path)
     File "/usr/local/lib/python3.10/site-packages/alembic/util/pyfiles.py", 
line 113, in load_module_py
       spec.loader.exec_module(module)  # type: ignore
     File "<frozen importlib._bootstrap_external>", line 883, in exec_module
     File "<frozen importlib._bootstrap>", line 241, in 
_call_with_frames_removed
     File "/app/superset/extensions/../migrations/env.py", line 127, in <module>
       run_migrations_online()
     File "/app/superset/extensions/../migrations/env.py", line 119, in 
run_migrations_online
       context.run_migrations()
     File "<string>", line 8, in run_migrations
     File 
"/usr/local/lib/python3.10/site-packages/alembic/runtime/environment.py", line 
948, in run_migrations
       self.get_context().run_migrations(**kw)
     File 
"/usr/local/lib/python3.10/site-packages/alembic/runtime/migration.py", line 
627, in run_migrations
       step.migration_fn(**kw)
     File 
"/app/superset/migrations/versions/2024-05-01_10-52_58d051681a3b_add_catalog_perm_to_tables.py",
 line 47, in upgrade
       upgrade_catalog_perms(engines={"postgresql"})
     File "/app/superset/migrations/shared/catalogs.py", line 139, in 
upgrade_catalog_perms
       upgrade_schema_perms(database, catalog, session)
     File "/app/superset/migrations/shared/catalogs.py", line 183, in 
upgrade_schema_perms
       schemas = get_schemas(database.database_name)
     File "/app/superset/migrations/shared/catalogs.py", line 106, in 
get_schemas
       return sorted({row[0].split(".")[-1][1:-1] for row in 
conn.execute(query)})
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 1370, in execute
       return self._exec_driver_sql(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 1674, in _exec_driver_sql
       ret = self._execute_context(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 1953, in _execute_context
       self._handle_dbapi_exception(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 2134, in _handle_dbapi_exception
       util.raise_(
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
       self.dialect.do_execute(
     File 
"/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 
736, in do_execute
       cursor.execute(statement, parameters)
     File 
"/app/superset_home/.local/lib/python3.10/site-packages/MySQLdb/cursors.py", 
line 176, in execute
       mogrified_query = self._mogrify(query, args)
     File 
"/app/superset_home/.local/lib/python3.10/site-packages/MySQLdb/cursors.py", 
line 202, in _mogrify
       raise ProgrammingError(str(m))
   sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) not enough 
arguments for format string
   [SQL:
   SELECT
       avm.name
   FROM ab_view_menu avm
   JOIN ab_permission_view apv ON avm.id = apv.view_menu_id
   JOIN ab_permission ap ON apv.permission_id = ap.id
   WHERE
       avm.name LIKE '[Druid Postgresql]%' AND
       ap.name = 'schema_access';
       ]
   (Background on this error at: https://sqlalche.me/e/14/f405)
   ```
   
   ### How to reproduce the bug
   
   1. Be sure you have a unreachable database. 
   2. Attempt to migrate to 4.1.0rc1
   
   ### Screenshots/recordings
   
   _No response_
   
   ### Superset version
   
   master / latest-dev
   
   ### Python version
   
   3.9
   
   ### Node version
   
   16
   
   ### Browser
   
   Chrome
   
   ### Additional context
   
   _No response_
   
   ### Checklist
   
   - [X] I have searched Superset docs and Slack and didn't find a solution to 
my problem.
   - [X] I have searched the GitHub issue tracker and didn't find a similar bug 
report.
   - [X] I have checked Superset's logs for errors and if I found a relevant 
Python stacktrace, I included it here as text in the "additional context" 
section.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to