Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complex query with Hive will cause errors #17262

Closed
3 tasks done
CodeingBoy opened this issue Oct 28, 2021 · 1 comment · Fixed by #17263
Closed
3 tasks done

Complex query with Hive will cause errors #17262

CodeingBoy opened this issue Oct 28, 2021 · 1 comment · Fixed by #17263
Labels
#bug Bug report

Comments

@CodeingBoy
Copy link
Contributor

While doing complex query in SQLLab (which will use MapReduce and create tracking url), will cause this error:

Instance <Query at 0x7fdf546d5fd0> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)

How to reproduce the bug

  1. Go to 'SQL Lab'
  2. Execute some complex query(it should not be simple like SELECT * FROM table, that will not use MapReduce)
  3. See error

Here's a sample data SQL you can reproduce:

CREATE TABLE some_table(
    a INT,
    b STRING
);
INSERT INTO some_table(a, b) VALUES (1, '1'), (2, '2'), (3, '3'), (4, '4');

While executing SELECT a, COUNT(1) AS count FROM some_table GROUP BY a;, will cause this error. (Screenshot below)

Expected results

Execute query with no error and display results.

Actual results

Causing this error:

Database error
Instance <Query at 0x7fdf4c04dd10> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)

Logs will print this stack trace:

Instance <Query at 0x7fdf0c7da990> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 268, in execute_sql_statement
    db_engine_spec.handle_cursor(cursor, query, session)
  File "/app/superset/db_engine_specs/hive.py", line 376, in handle_cursor
    session.commit()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1042, in commit
    self.transaction.commit()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 504, in commit
    self._prepare_impl()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
    self.session.flush()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2536, in flush
    self._flush(objects)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2678, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    with_traceback=exc_tb,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2638, in _flush
    flush_context.execute()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py", line 589, in execute
    uow,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py", line 236, in save_obj
    update,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py", line 995, in _emit_update_statements
    statement, multiparams
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement
    distilled_params,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1317, in _execute_context
    e, statement, parameters, cursor, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1511, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 483, in execute_sql_statements
    apply_ctas,
  File "/app/superset/sql_lab.py", line 298, in execute_sql_statement
    session.refresh(query)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1718, in refresh
    only_load_props=attribute_names,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 206, in load_on_ident
    identity_token=identity_token,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 286, in load_on_pk_identity
    return q.one()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3557, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3572, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1141, in connection
    execution_options=execution_options,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1147, in _connection_for_bind
    engine, execution_options
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
    self._assert_active()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5) (Background on this error at: http://sqlalche.me/e/13/7s2a)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 186, in get_sql_results
    log_params=log_params,
  File "/app/superset/sql_lab.py", line 496, in execute_sql_statements
    ex, query, session, payload, prefix_message
  File "/app/superset/sql_lab.py", line 112, in handle_query_error
    errors = query.database.db_engine_spec.extract_errors(str(ex))
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 287, in __get__
    return self.impl.get(instance_state(instance), dict_)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 723, in get
    value = self.callable_(state, passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/strategies.py", line 727, in _load_for_state
    session, state, passive
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/strategies.py", line 775, in _get_ident_for_use_get
    for pk in self.mapper.primary_key
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/strategies.py", line 775, in <listcomp>
    for pk in self.mapper.primary_key
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/mapper.py", line 2845, in _get_state_attr_by_column
    return state.manager[prop.key].impl.get(state, dict_, passive=passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 718, in get
    value = state._load_expired(state, passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/state.py", line 652, in _load_expired
    self.manager.deferred_scalar_loader(self, toload)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 1010, in load_scalar_attributes
    only_load_props=attribute_names,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 206, in load_on_ident
    identity_token=identity_token,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 286, in load_on_pk_identity
    return q.one()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3557, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3572, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1141, in connection
    execution_options=execution_options,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1147, in _connection_for_bind
    engine, execution_options
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
    self._assert_active()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5) (Background on this error at: http://sqlalche.me/e/13/7s2a)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 151, in get_query
    return session.query(Query).filter_by(id=query_id).one()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3534, in __iter__
    self.session._autoflush()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1618, in _autoflush
    self.flush()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2536, in flush
    self._flush(objects)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2633, in _flush
    subtransactions=True
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 953, in begin
    self.transaction = self.transaction._begin(nested=nested)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 317, in _begin
    self._assert_active()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5) (Background on this error at: http://sqlalche.me/e/13/7s2a)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/backoff/_sync.py", line 94, in retry
    ret = target(*args, **kwargs)
  File "/app/superset/sql_lab.py", line 153, in get_query
    raise SqlLabException("Failed at getting query")
superset.sql_lab.SqlLabException: Failed at getting query

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/views/core.py", line 2534, in _sql_json_sync
    log_params=log_params,
  File "/usr/local/lib/python3.7/site-packages/celery/local.py", line 191, in __call__
    return self._get_current_object()(*a, **kw)
  File "/app/superset/initialization/__init__.py", line 103, in __call__
    return task_base.__call__(self, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/celery/app/task.py", line 393, in __call__
    return self.run(*args, **kwargs)
  File "/app/superset/sql_lab.py", line 191, in get_sql_results
    query = get_query(query_id, session)
  File "/usr/local/lib/python3.7/site-packages/backoff/_sync.py", line 110, in retry
    _call_handlers(on_backoff, *details, wait=seconds)
  File "/usr/local/lib/python3.7/site-packages/backoff/_sync.py", line 20, in _call_handlers
    hdlr(details)
  File "/app/superset/sql_lab.py", line 126, in get_query_backoff_handler
    query_id = details["kwargs"]["query_id"]
KeyError: 'query_id'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/views/base.py", line 204, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/utils/log.py", line 241, in wrapper
    value = f(*args, **kwargs)
  File "/app/superset/views/core.py", line 2573, in sql_json
    return self.sql_json_exec(request.json, log_params)
  File "/app/superset/views/core.py", line 2762, in sql_json_exec
    session, rendered_query, query, expand_data, log_params
  File "/app/superset/views/core.py", line 2551, in _sql_json_sync
    logger.exception("Query %i failed unexpectedly", query.id)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 287, in __get__
    return self.impl.get(instance_state(instance), dict_)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 718, in get
    value = state._load_expired(state, passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/state.py", line 652, in _load_expired
    self.manager.deferred_scalar_loader(self, toload)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 944, in load_scalar_attributes
    "attribute refresh operation cannot proceed" % (state_str(state))
sqlalchemy.orm.exc.DetachedInstanceError: Instance <Query at 0x7fdf0c7da990> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)
2021-10-28 02:25:09,668:ERROR:superset.views.base:Instance <Query at 0x7fdf0c7da990> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 268, in execute_sql_statement
    db_engine_spec.handle_cursor(cursor, query, session)
  File "/app/superset/db_engine_specs/hive.py", line 376, in handle_cursor
    session.commit()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1042, in commit
    self.transaction.commit()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 504, in commit
    self._prepare_impl()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
    self.session.flush()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2536, in flush
    self._flush(objects)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2678, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    with_traceback=exc_tb,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2638, in _flush
    flush_context.execute()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py", line 589, in execute
    uow,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py", line 236, in save_obj
    update,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py", line 995, in _emit_update_statements
    statement, multiparams
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement
    distilled_params,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1317, in _execute_context
    e, statement, parameters, cursor, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1511, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 483, in execute_sql_statements
    apply_ctas,
  File "/app/superset/sql_lab.py", line 298, in execute_sql_statement
    session.refresh(query)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1718, in refresh
    only_load_props=attribute_names,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 206, in load_on_ident
    identity_token=identity_token,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 286, in load_on_pk_identity
    return q.one()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3557, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3572, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1141, in connection
    execution_options=execution_options,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1147, in _connection_for_bind
    engine, execution_options
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
    self._assert_active()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5) (Background on this error at: http://sqlalche.me/e/13/7s2a)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 186, in get_sql_results
    log_params=log_params,
  File "/app/superset/sql_lab.py", line 496, in execute_sql_statements
    ex, query, session, payload, prefix_message
  File "/app/superset/sql_lab.py", line 112, in handle_query_error
    errors = query.database.db_engine_spec.extract_errors(str(ex))
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 287, in __get__
    return self.impl.get(instance_state(instance), dict_)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 723, in get
    value = self.callable_(state, passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/strategies.py", line 727, in _load_for_state
    session, state, passive
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/strategies.py", line 775, in _get_ident_for_use_get
    for pk in self.mapper.primary_key
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/strategies.py", line 775, in <listcomp>
    for pk in self.mapper.primary_key
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/mapper.py", line 2845, in _get_state_attr_by_column
    return state.manager[prop.key].impl.get(state, dict_, passive=passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 718, in get
    value = state._load_expired(state, passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/state.py", line 652, in _load_expired
    self.manager.deferred_scalar_loader(self, toload)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 1010, in load_scalar_attributes
    only_load_props=attribute_names,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 206, in load_on_ident
    identity_token=identity_token,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 286, in load_on_pk_identity
    return q.one()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3557, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3572, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1141, in connection
    execution_options=execution_options,
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1147, in _connection_for_bind
    engine, execution_options
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
    self._assert_active()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5) (Background on this error at: http://sqlalche.me/e/13/7s2a)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/sql_lab.py", line 151, in get_query
    return session.query(Query).filter_by(id=query_id).one()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none
    ret = list(self)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3534, in __iter__
    self.session._autoflush()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1618, in _autoflush
    self.flush()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2536, in flush
    self._flush(objects)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2633, in _flush
    subtransactions=True
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 953, in begin
    self.transaction = self.transaction._begin(nested=nested)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 317, in _begin
    self._assert_active()
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
[SQL: UPDATE "query" SET tracking_url=?, changed_on=? WHERE "query".id = ?]
[parameters: (<function <lambda> at 0x7fdf5959d3b0>, '2021-10-28 02:25:09.432381', 35)]
(Background on this error at: http://sqlalche.me/e/13/rvf5) (Background on this error at: http://sqlalche.me/e/13/7s2a)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/backoff/_sync.py", line 94, in retry
    ret = target(*args, **kwargs)
  File "/app/superset/sql_lab.py", line 153, in get_query
    raise SqlLabException("Failed at getting query")
superset.sql_lab.SqlLabException: Failed at getting query

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/views/core.py", line 2534, in _sql_json_sync
    log_params=log_params,
  File "/usr/local/lib/python3.7/site-packages/celery/local.py", line 191, in __call__
    return self._get_current_object()(*a, **kw)
  File "/app/superset/initialization/__init__.py", line 103, in __call__
    return task_base.__call__(self, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/celery/app/task.py", line 393, in __call__
    return self.run(*args, **kwargs)
  File "/app/superset/sql_lab.py", line 191, in get_sql_results
    query = get_query(query_id, session)
  File "/usr/local/lib/python3.7/site-packages/backoff/_sync.py", line 110, in retry
    _call_handlers(on_backoff, *details, wait=seconds)
  File "/usr/local/lib/python3.7/site-packages/backoff/_sync.py", line 20, in _call_handlers
    hdlr(details)
  File "/app/superset/sql_lab.py", line 126, in get_query_backoff_handler
    query_id = details["kwargs"]["query_id"]
KeyError: 'query_id'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/superset/views/base.py", line 204, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/utils/log.py", line 241, in wrapper
    value = f(*args, **kwargs)
  File "/app/superset/views/core.py", line 2573, in sql_json
    return self.sql_json_exec(request.json, log_params)
  File "/app/superset/views/core.py", line 2762, in sql_json_exec
    session, rendered_query, query, expand_data, log_params
  File "/app/superset/views/core.py", line 2551, in _sql_json_sync
    logger.exception("Query %i failed unexpectedly", query.id)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 287, in __get__
    return self.impl.get(instance_state(instance), dict_)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/attributes.py", line 718, in get
    value = state._load_expired(state, passive)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/state.py", line 652, in _load_expired
    self.manager.deferred_scalar_loader(self, toload)
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/loading.py", line 944, in load_scalar_attributes
    "attribute refresh operation cannot proceed" % (state_str(state))
sqlalchemy.orm.exc.DetachedInstanceError: Instance <Query at 0x7fdf0c7da990> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)

Screenshots

image

Environment

  • browser type and version: Google Chrome 95.0.4638.54 (Official Build) (64-bit)
  • superset version: 1.3.1
  • python version: Python 3.7.9
  • node.js version: I didn't find this one since running superset in docker
  • Note: running superset in docker
    • Image version: clone from git tag 1.3.1 and build from it
    • Docker version: Docker version 20.10.9, build c2ea9bc
  • any feature flags active: {"ALERT_REPORTS": True}

Checklist

  • I have checked the superset logs for python stacktraces and included it here as text if there are any.
  • I have reproduced the issue with at least the latest released version of superset.
  • I have checked the issue tracker for the same issue and I haven't found one similar.
@CodeingBoy CodeingBoy added the #bug Bug report label Oct 28, 2021
@CodeingBoy
Copy link
Contributor Author

This is caused by a programming error that will try writing lambda into database. I will submit a PR later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
#bug Bug report
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant