Public bug reported:

glance-manage db sync fails while adding triggers to the database table
with error.

Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332
os-collect-config[2239]: "DBError: (pymysql.err.InternalError) (1419,
u'You do not have the SUPER privilege and binary logging is enabled (you
*might* want to use the less safe log_bin_trust_function_creators
variable)') [SQL: u\"\\nCREATE TRIGGER insert_visibility BEFORE INSERT
ON images\\nFOR EACH ROW\\nBEGIN\\n    -- NOTE(abashmak):\\n    -- The
following IF/ELSE block implements a priority decision tree.\\n    --
Strict order MUST be followed to correctly cover all the edge
cases.\\n\\n    -- Edge case: neither is_public nor visibility
specified\\n    --            (or both specified as NULL):\\n    IF
NEW.is_public <=> NULL AND NEW.visibility <=> NULL THEN\\n        SIGNAL
SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility value';\\n    --
Edge case: both is_public and visibility specified:\\n    ELSEIF
NOT(NEW.is_public <=> NULL OR NEW.visibility <=> NULL) THEN\\n
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility
value';\\n    -- Inserting with is_public, set visibility
accordingly:\\n    ELSEIF NOT NEW.is_public <=> NULL THEN\\n        IF
NEW.is_public = 1 THEN\\n            SET NEW.visibility = 'public';\\n
ELSE\\n            SET NEW.visibility = 'shared';\\n        END IF;\\n
-- Inserting with visibility, set is_public accordingly:\\n    ELSEIF
NOT NEW.visibility <=> NULL THEN\\n        IF NEW.visibility = 'public'
THEN\\n            SET NEW.is_public = 1;\\n        ELSE\\n
SET NEW.is_public = 0;\\n        END IF;\\n    -- Edge case: either one
of: is_public or visibility,\\n    --            is explicitly set to
NULL:\\n    ELSE\\n        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =
'Invalid visibility value';\\n    END IF;\\nEND;\\n\"] (Background on
this error at: http://sqlalche.me/e/2j85)",


The reason is for MySQL, using the glance-manage db_sync or glance-manage 
expand command requires that you either grant your glance user SUPER 
privileges, or run set global log_bin_trust_function_creators=1; in mysql 
beforehand.


Actual logs:
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "+++ [[ -n 0 ]]",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "+++ glance-manage db_sync",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: 
"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1334: 
OsloDBDeprecationWarning: EngineFacade is deprecated; please use 
oslo_db.sqlalchemy.enginefacade",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  expire_on_commit=expire_on_commit, _conf=conf)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Context impl 
MySQLImpl.",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Will assume 
non-transactional DDL.",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade  -> 
liberty, liberty initial",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade 
liberty -> mitaka01, add index on created_at and updated_at columns of 'images' 
table",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade 
mitaka01 -> mitaka02, update metadef os_nova_server",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade 
mitaka02 -> ocata_expand01, add visibility to images",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "CRITI [glance] Unhandled error",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "Traceback (most recent call last):",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"/usr/bin/glance-manage\", line 10, in 
<module>",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    sys.exit(main())",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 535, in main",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return CONF.command.action_fn()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 367, in sync",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self.command_object.sync(CONF.command.version)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 160, in sync",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self.expand()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 215, in expand",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self._sync(version=expand_head)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 175, in _sync",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    alembic_command.upgrade(a_config, version)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/command.py\", line 254, in upgrade",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    script.run_env()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/script/base.py\", line 425, in 
run_env",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    util.load_python_file(self.dir, 'env.py')",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py\", line 81, in 
load_python_file",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    module = load_module_py(module_id, path)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/util/compat.py\", line 141, in 
load_module_py",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    mod = imp.load_source(module_id, path, fp)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/env.py\",
 line 88, in <module>",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    run_migrations_online()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/env.py\",
 line 83, in run_migrations_online",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    context.run_migrations()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"<string>\", line 8, in run_migrations",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/runtime/environment.py\", line 836, 
in run_migrations",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self.get_context().run_migrations(**kw)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/runtime/migration.py\", line 330, in 
run_migrations",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    step.migration_fn(**kw)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/versions/ocata_expand01_add_visibility.py\",
 line 151, in upgrade",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    _add_triggers(migrate_engine)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/versions/ocata_expand01_add_visibility.py\",
 line 133, in _add_triggers",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    ERROR_MESSAGE))",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"<string>\", line 8, in execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"<string>\", line 3, in execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/operations/ops.py\", line 1856, in 
execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return operations.invoke(op)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/operations/base.py\", line 319, in 
invoke",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return fn(self, operation)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/operations/toimpl.py\", line 161, in 
execute_sql",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    execution_options=operation.execution_options",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/ddl/impl.py\", line 121, in execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self._exec(sql, execution_options)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/ddl/impl.py\", line 118, in _exec",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return conn.execute(construct, *multiparams, 
**params)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 948, in 
execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return meth(self, multiparams, params)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py\", line 269, in 
_execute_on_connection",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return connection._execute_clauseelement(self, 
multiparams, params)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1060, in 
_execute_clauseelement",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    compiled_sql, distilled_params",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1200, in 
_execute_context",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    context)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1409, in 
_handle_dbapi_exception",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    util.raise_from_cause(newraise, exc_info)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py\", line 203, in 
raise_from_cause",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    reraise(type(exception), exception, tb=exc_tb, 
cause=cause)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1193, in 
_execute_context",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py\", line 507, 
in do_execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    cursor.execute(statement, parameters)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/cursors.py\", line 166, in execute",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    result = self._query(query)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/cursors.py\", line 322, in _query",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    conn.query(q)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 856, in 
query",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self._affected_rows = 
self._read_query_result(unbuffered=unbuffered)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 1057, in 
_read_query_result",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    result.read()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 1340, in 
read",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    first_packet = self.connection._read_packet()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 1014, in 
_read_packet",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    packet.check_error()",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 393, in 
check_error",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    err.raise_mysql_exception(self._data)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/err.py\", line 107, in 
raise_mysql_exception",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    raise errorclass(errno, errval)",
Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "DBError: (pymysql.err.InternalError) (1419, u'You do 
not have the SUPER privilege and binary logging is enabled (you *might* want to 
use the less safe log_bin_trust_function_creators variable)') [SQL: 
u\"\\nCREATE TRIGGER insert_visibility BEFORE INSERT ON images\\nFOR EACH 
ROW\\nBEGIN\\n    -- NOTE(abashmak):\\n    -- The following IF/ELSE block 
implements a priority decision tree.\\n    -- Strict order MUST be followed to 
correctly cover all the edge cases.\\n\\n    -- Edge case: neither is_public 
nor visibility specified\\n    --            (or both specified as NULL):\\n    
IF NEW.is_public <=> NULL AND NEW.visibility <=> NULL THEN\\n        SIGNAL 
SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility value';\\n    -- Edge 
case: both is_public and visibility specified:\\n    ELSEIF NOT(NEW.is_public 
<=> NULL OR NEW.visibility <=> NULL) THEN\\n        SIGNAL SQLSTATE '45000' SET 
MESSAGE_TEXT = 'Invalid visibility value';\\n    -- Inserting with is_public, 
set visibility accordingly:\\n    ELSEIF NOT NEW.is_public <=> NULL THEN\\n     
   IF NEW.is_public = 1 THEN\\n            SET NEW.visibility = 'public';\\n    
    ELSE\\n            SET NEW.visibility = 'shared';\\n        END IF;\\n    
-- Inserting with visibility, set is_public accordingly:\\n    ELSEIF NOT 
NEW.visibility <=> NULL THEN\\n        IF NEW.visibility = 'public' THEN\\n     
       SET NEW.is_public = 1;\\n        ELSE\\n            SET NEW.is_public = 
0;\\n        END IF;\\n    -- Edge case: either one of: is_public or 
visibility,\\n    --            is explicitly set to NULL:\\n    ELSE\\n        
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility value';\\n    
END IF;\\nEND;\\n\"] (Background on this error at: http://sqlalche.me/e/2j85)",

** Affects: glance
     Importance: High
     Assignee: Abhishek Kekane (abhishek-kekane)
         Status: New

** Changed in: glance
   Importance: Undecided => High

** Changed in: glance
     Assignee: (unassigned) => Abhishek Kekane (abhishek-kekane)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1749640

Title:
  db sync fails for mysql while adding triggers

Status in Glance:
  New

Bug description:
  glance-manage db sync fails while adding triggers to the database
  table with error.

  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332
  os-collect-config[2239]: "DBError: (pymysql.err.InternalError) (1419,
  u'You do not have the SUPER privilege and binary logging is enabled
  (you *might* want to use the less safe log_bin_trust_function_creators
  variable)') [SQL: u\"\\nCREATE TRIGGER insert_visibility BEFORE INSERT
  ON images\\nFOR EACH ROW\\nBEGIN\\n    -- NOTE(abashmak):\\n    -- The
  following IF/ELSE block implements a priority decision tree.\\n    --
  Strict order MUST be followed to correctly cover all the edge
  cases.\\n\\n    -- Edge case: neither is_public nor visibility
  specified\\n    --            (or both specified as NULL):\\n    IF
  NEW.is_public <=> NULL AND NEW.visibility <=> NULL THEN\\n
  SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility
  value';\\n    -- Edge case: both is_public and visibility
  specified:\\n    ELSEIF NOT(NEW.is_public <=> NULL OR NEW.visibility
  <=> NULL) THEN\\n        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =
  'Invalid visibility value';\\n    -- Inserting with is_public, set
  visibility accordingly:\\n    ELSEIF NOT NEW.is_public <=> NULL
  THEN\\n        IF NEW.is_public = 1 THEN\\n            SET
  NEW.visibility = 'public';\\n        ELSE\\n            SET
  NEW.visibility = 'shared';\\n        END IF;\\n    -- Inserting with
  visibility, set is_public accordingly:\\n    ELSEIF NOT NEW.visibility
  <=> NULL THEN\\n        IF NEW.visibility = 'public' THEN\\n
  SET NEW.is_public = 1;\\n        ELSE\\n            SET NEW.is_public
  = 0;\\n        END IF;\\n    -- Edge case: either one of: is_public or
  visibility,\\n    --            is explicitly set to NULL:\\n
  ELSE\\n        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid
  visibility value';\\n    END IF;\\nEND;\\n\"] (Background on this
  error at: http://sqlalche.me/e/2j85)",

  
  The reason is for MySQL, using the glance-manage db_sync or glance-manage 
expand command requires that you either grant your glance user SUPER 
privileges, or run set global log_bin_trust_function_creators=1; in mysql 
beforehand.

  
  Actual logs:
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "+++ [[ -n 0 ]]",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "+++ glance-manage db_sync",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: 
"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1334: 
OsloDBDeprecationWarning: EngineFacade is deprecated; please use 
oslo_db.sqlalchemy.enginefacade",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  expire_on_commit=expire_on_commit, _conf=conf)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Context impl 
MySQLImpl.",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Will assume 
non-transactional DDL.",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade  -> 
liberty, liberty initial",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade 
liberty -> mitaka01, add index on created_at and updated_at columns of 'images' 
table",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade 
mitaka01 -> mitaka02, update metadef os_nova_server",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "INFO  [alembic.runtime.migration] Running upgrade 
mitaka02 -> ocata_expand01, add visibility to images",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "CRITI [glance] Unhandled error",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "Traceback (most recent call last):",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"/usr/bin/glance-manage\", line 10, in 
<module>",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    sys.exit(main())",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 535, in main",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return CONF.command.action_fn()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 367, in sync",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self.command_object.sync(CONF.command.version)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 160, in sync",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self.expand()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 215, in expand",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self._sync(version=expand_head)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/cmd/manage.py\", line 175, in _sync",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    alembic_command.upgrade(a_config, version)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/command.py\", line 254, in upgrade",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    script.run_env()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/script/base.py\", line 425, in 
run_env",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    util.load_python_file(self.dir, 'env.py')",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py\", line 81, in 
load_python_file",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    module = load_module_py(module_id, path)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/util/compat.py\", line 141, in 
load_module_py",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    mod = imp.load_source(module_id, path, fp)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/env.py\",
 line 88, in <module>",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    run_migrations_online()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/env.py\",
 line 83, in run_migrations_online",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    context.run_migrations()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"<string>\", line 8, in run_migrations",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/runtime/environment.py\", line 836, 
in run_migrations",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self.get_context().run_migrations(**kw)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/runtime/migration.py\", line 330, in 
run_migrations",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    step.migration_fn(**kw)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/versions/ocata_expand01_add_visibility.py\",
 line 151, in upgrade",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    _add_triggers(migrate_engine)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/glance/db/sqlalchemy/alembic_migrations/versions/ocata_expand01_add_visibility.py\",
 line 133, in _add_triggers",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    ERROR_MESSAGE))",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"<string>\", line 8, in execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File \"<string>\", line 3, in execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/operations/ops.py\", line 1856, in 
execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return operations.invoke(op)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/operations/base.py\", line 319, in 
invoke",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return fn(self, operation)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/operations/toimpl.py\", line 161, in 
execute_sql",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    execution_options=operation.execution_options",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/ddl/impl.py\", line 121, in execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self._exec(sql, execution_options)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/alembic/ddl/impl.py\", line 118, in _exec",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return conn.execute(construct, *multiparams, 
**params)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 948, in 
execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return meth(self, multiparams, params)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py\", line 269, in 
_execute_on_connection",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    return connection._execute_clauseelement(self, 
multiparams, params)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1060, in 
_execute_clauseelement",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    compiled_sql, distilled_params",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1200, in 
_execute_context",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    context)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1409, in 
_handle_dbapi_exception",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    util.raise_from_cause(newraise, exc_info)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py\", line 203, in 
raise_from_cause",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    reraise(type(exception), exception, tb=exc_tb, 
cause=cause)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py\", line 1193, in 
_execute_context",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py\", line 507, 
in do_execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    cursor.execute(statement, parameters)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/cursors.py\", line 166, in execute",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    result = self._query(query)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/cursors.py\", line 322, in _query",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    conn.query(q)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 856, in 
query",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    self._affected_rows = 
self._read_query_result(unbuffered=unbuffered)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 1057, in 
_read_query_result",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    result.read()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 1340, in 
read",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    first_packet = self.connection._read_packet()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 1014, in 
_read_packet",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    packet.check_error()",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/connections.py\", line 393, in 
check_error",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    err.raise_mysql_exception(self._data)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "  File 
\"/usr/lib/python2.7/site-packages/pymysql/err.py\", line 107, in 
raise_mysql_exception",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "    raise errorclass(errno, errval)",
  Feb 15 03:20:31 upstream-centos-7-2-node-rdo-cloud-tripleo-30309-6332 
os-collect-config[2239]: "DBError: (pymysql.err.InternalError) (1419, u'You do 
not have the SUPER privilege and binary logging is enabled (you *might* want to 
use the less safe log_bin_trust_function_creators variable)') [SQL: 
u\"\\nCREATE TRIGGER insert_visibility BEFORE INSERT ON images\\nFOR EACH 
ROW\\nBEGIN\\n    -- NOTE(abashmak):\\n    -- The following IF/ELSE block 
implements a priority decision tree.\\n    -- Strict order MUST be followed to 
correctly cover all the edge cases.\\n\\n    -- Edge case: neither is_public 
nor visibility specified\\n    --            (or both specified as NULL):\\n    
IF NEW.is_public <=> NULL AND NEW.visibility <=> NULL THEN\\n        SIGNAL 
SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility value';\\n    -- Edge 
case: both is_public and visibility specified:\\n    ELSEIF NOT(NEW.is_public 
<=> NULL OR NEW.visibility <=> NULL) THEN\\n        SIGNAL SQLSTATE '45000' SET 
MESSAGE_TEXT = 'Invalid visibility value';\\n    -- Inserting with is_public, 
set visibility accordingly:\\n    ELSEIF NOT NEW.is_public <=> NULL THEN\\n     
   IF NEW.is_public = 1 THEN\\n            SET NEW.visibility = 'public';\\n    
    ELSE\\n            SET NEW.visibility = 'shared';\\n        END IF;\\n    
-- Inserting with visibility, set is_public accordingly:\\n    ELSEIF NOT 
NEW.visibility <=> NULL THEN\\n        IF NEW.visibility = 'public' THEN\\n     
       SET NEW.is_public = 1;\\n        ELSE\\n            SET NEW.is_public = 
0;\\n        END IF;\\n    -- Edge case: either one of: is_public or 
visibility,\\n    --            is explicitly set to NULL:\\n    ELSE\\n        
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid visibility value';\\n    
END IF;\\nEND;\\n\"] (Background on this error at: http://sqlalche.me/e/2j85)",

To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1749640/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to