You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Ash Berlin-Taylor (JIRA)" <ji...@apache.org> on 2019/07/26 14:26:00 UTC

[jira] [Commented] (AIRFLOW-5050) `airflow sync_perm` failes with constraint error after upgrade

    [ https://issues.apache.org/jira/browse/AIRFLOW-5050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16893858#comment-16893858 ] 

Ash Berlin-Taylor commented on AIRFLOW-5050:
--------------------------------------------

The problem rows in question:

{noformat}
ecliptical_perigee_3491_airflow=> select * from ab_permission_view where permission_id is NULL or view_menu_id is NULL;
 id  | permission_id | view_menu_id
-----+---------------+--------------
  57 |               |           21
 112 |               |           24
 183 |               |           44
(3 rows)

ecliptical_perigee_3491_airflow=> select * from ab_permission_view_role where
id                 permission_view_id role_id
ecliptical_perigee_3491_airflow=> select * from ab_permission_view_role where permission_view_id = 57;
 id | permission_view_id | role_id
----+--------------------+---------
 44 |                 57 |       1
{noformat}

> `airflow sync_perm` failes with constraint error after upgrade
> --------------------------------------------------------------
>
>                 Key: AIRFLOW-5050
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-5050
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: webserver
>    Affects Versions: 1.10.4
>            Reporter: Ash Berlin-Taylor
>            Priority: Major
>
> Running {{airflow sync_perm}} after upgrading from 1.10.3 to 1.10.4rc3 yields this error:
> {noformat}
> [2019-07-26 14:05:08,160] {security.py:446} INFO - Start syncing user roles.
> [2019-07-26 14:05:08,740] {security.py:357} INFO - Fetching a set of all permission, view_menu from FAB meta-table
> [2019-07-26 14:05:09,495] {security.py:307} INFO - Cleaning faulty perms
> Traceback (most recent call last):
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
>     cursor, statement, parameters, context
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
>     cursor.execute(statement, parameters)
> psycopg2.IntegrityError: update or delete on table "ab_permission_view" violates foreign key constraint "ab_permission_view_role_permission_view_id_fkey" on table "ab_permission_view_role"
> DETAIL:  Key (id)=(57) is still referenced from table "ab_permission_view_role".
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
>   File "/usr/bin/airflow", line 32, in <module>
>     args.func(args)
>   File "/usr/lib/python3.6/site-packages/airflow/utils/cli.py", line 74, in wrapper
>     return f(*args, **kwargs)
>   File "/usr/lib/python3.6/site-packages/airflow/bin/cli.py", line 1472, in sync_perm
>     appbuilder = cached_appbuilder()
>   File "/usr/lib/python3.6/site-packages/airflow/www_rbac/app.py", line 237, in cached_appbuilder
>     cached_app(config=config, testing=testing)
>   File "/usr/lib/python3.6/site-packages/airflow/www_rbac/app.py", line 230, in cached_app
>     app, _ = create_app(config, session, testing)
>   File "/usr/lib/python3.6/site-packages/airflow/www_rbac/app.py", line 190, in create_app
>     security_manager.sync_roles()
>   File "/usr/lib/python3.6/site-packages/astronomer/flask_appbuilder/security.py", line 278, in sync_roles
>     super().sync_roles()
>   File "/usr/lib/python3.6/site-packages/airflow/www_rbac/security.py", line 460, in sync_roles
>     self.clean_perms()
>   File "/usr/lib/python3.6/site-packages/airflow/www_rbac/security.py", line 316, in clean_perms
>     deleted_count = pvms.delete()
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3696, in delete
>     delete_op.exec_()
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1691, in exec_
>     self._do_exec()
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1919, in _do_exec
>     self._execute_stmt(delete_stmt)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1696, in _execute_stmt
>     self.result = self.query._execute_crud(stmt, self.mapper)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3363, in _execute_crud
>     return conn.execute(stmt, self._params)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 988, in execute
>     return meth(self, multiparams, params)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
>     return connection._execute_clauseelement(self, multiparams, params)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
>     distilled_params,
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
>     e, statement, parameters, cursor, context
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
>     util.raise_from_cause(sqlalchemy_exception, exc_info)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
>     reraise(type(exception), exception, tb=exc_tb, cause=cause)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
>     raise value.with_traceback(tb)
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
>     cursor, statement, parameters, context
>   File "/usr/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
>     cursor.execute(statement, parameters)
> sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) update or delete on table "ab_permission_view" violates foreign key constraint "ab_permission_view_role_permission_view_id_fkey" on table "ab_permission_view_role"
> DETAIL:  Key (id)=(57) is still referenced from table "ab_permission_view_role".
> [SQL: DELETE FROM ab_permission_view WHERE ab_permission_view.permission_id IS NULL OR ab_permission_view.view_menu_id IS NULL]
> (Background on this error at: http://sqlalche.me/e/gkpj)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)