I've uploaded the upstream fix for this to the focal-unnapproved queue
(https://launchpad.net/ubuntu/focal/+queue?queue_state=1&queue_text=barbican).

** Description changed:

  [Impact]
  
  New installations of OpenStack Barbican with Mysql8 fail with a
  traceback when trying to initialize the database
  
  [Test Case]
  
  Use the OpenStack charms to deploy Barbican on Ubuntu Focal. Using Focal
  is expected to have a traceback and with this change is expected to
  setup successfully.
  
  [Regression Potential]
  
  The regression potential for this is minimal as the package currently
  does not work at all with mysql8 which ships with Ubuntu Focal.
  
- The proposed change is a minimal change that merely removes a constraint
- creation that is only added by the relevant libraries with Mysql8.
+ The proposed change is a cherry-pick from upstream that resolves this issue 
by rebasing the old migrations into a single larger migration. This
+ only affects new deploys that would normally step through all of the old
+ migrations so shouldn't affect running deploys.
  
  -----------------------------------------------------
  
  Running
  
  barbican-manage db upgrade fails with the following traceback when the
  DB is mysql8:
  
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters Traceback 
(most recent call last):
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1245, in 
_execute_context
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
self.dialect.do_execute(
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 581, in 
do_execute
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
cursor.execute(statement, parameters)
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/cursors.py", line 170, in execute
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     result 
= self._query(query)
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/cursors.py", line 328, in _query
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
conn.query(q)
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/connections.py", line 517, in query
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/connections.py", line 732, in 
_read_query_result
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
result.read()
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/connections.py", line 1075, in read
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
first_packet = self.connection._read_packet()
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/connections.py", line 684, in 
_read_packet
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
packet.check_error()
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/protocol.py", line 220, in check_error
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     
err.raise_mysql_exception(self._data)
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters   File 
"/usr/lib/python3/dist-packages/pymysql/err.py", line 109, in 
raise_mysql_exception
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters     raise 
errorclass(errno, errval)
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters 
pymysql.err.InternalError: (3959, "Check constraint 'secret_acls_chk_2' uses 
column 'creator_only', hence column cannot be dropped or renamed.")
  2020-10-08 22:31:32.028 28131 ERROR oslo_db.sqlalchemy.exc_filters
  ERROR: (pymysql.err.InternalError) (3959, "Check constraint 
'secret_acls_chk_2' uses column 'creator_only', hence column cannot be dropped 
or renamed.")
  [SQL: ALTER TABLE secret_acls CHANGE creator_only project_access BOOL NULL]
  
  Seems this is a known issue with alembic [0]
  
  [1] https://github.com/sqlalchemy/alembic/issues/699

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1899104

Title:
  [SRU] barbican-manage db upgrade fails with MySQL8

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/barbican/+bug/1899104/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to