Steps to reproduce
- Go to https.//tools.wmflabs.org/watch-translations (tool should ask for login)
- Login
- 502 Bad Gateway displayed
Traceback
[pid: 10|app: 0|req: 3/15] 192.168.207.0 () {46 vars in 948 bytes} [Wed Nov 13 09:20:32 2019] GET /watch-translations/ => generated 1245 bytes in 24 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) Traceback (most recent call last): File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/MySQLdb/cursors.py", line 204, in execute query = query % args TypeError: unsupported operand type(s) for %: 'bytes' and 'tuple' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context cursor, statement, parameters, context File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/default.py", line 581, in do_execute cursor.execute(statement, parameters) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/MySQLdb/cursors.py", line 206, in execute raise ProgrammingError(str(m)) MySQLdb._exceptions.ProgrammingError: unsupported operand type(s) for %: 'bytes' and 'tuple' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 2463, in __call__ return self.wsgi_app(environ, start_response) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 2449, in wsgi_app response = self.handle_exception(e) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 1866, in handle_exception reraise(exc_type, exc_value, tb) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/_compat.py", line 39, in reraise raise value File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 2446, in wsgi_app response = self.full_dispatch_request() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 1951, in full_dispatch_request rv = self.handle_user_exception(e) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 1820, in handle_user_exception reraise(exc_type, exc_value, tb) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/_compat.py", line 39, in reraise raise value File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 1947, in full_dispatch_request rv = self.preprocess_request() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/flask/app.py", line 2241, in preprocess_request rv = func() File "/data/project/watch-translations/www/python/src/app.py", line 101, in db_init_user user = get_user() File "/data/project/watch-translations/www/python/src/app.py", line 84, in get_user ).first() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 3265, in first ret = list(self[0:1]) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 3043, in __getitem__ return list(res) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 3367, in __iter__ return self._execute_and_instances(context) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 3389, in _execute_and_instances querycontext, self._connection_from_session, close_with_result=True File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 3404, in _get_bind_args mapper=self._bind_mapper(), clause=querycontext.statement, **kw File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/query.py", line 3382, in _connection_from_session conn = self.session.connection(**kw) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/session.py", line 1124, in connection execution_options=execution_options, File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/session.py", line 1130, in _connection_for_bind engine, execution_options File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/orm/session.py", line 431, in _connection_for_bind conn = bind._contextual_connect() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 2242, in _contextual_connect self._wrap_pool_connect(self.pool.connect, None), File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect return fn() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/base.py", line 363, in connect return _ConnectionFairy._checkout(self) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/base.py", line 760, in _checkout fairy = _ConnectionRecord.checkout(pool) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/base.py", line 492, in checkout rec = pool._do_get() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/impl.py", line 139, in _do_get self._dec_overflow() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__ compat.reraise(exc_type, exc_value, exc_tb) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 153, in reraise raise value File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/impl.py", line 136, in _do_get return self._create_connection() File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/base.py", line 308, in _create_connection return _ConnectionRecord(self) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/base.py", line 437, in __init__ self.__connect(first_connect_check=True) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/pool/base.py", line 649, in __connect ).exec_once_unless_exception(self.connection, self) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/event/attr.py", line 314, in exec_once_unless_exception self._exec_once_impl(True, *args, **kw) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/event/attr.py", line 285, in _exec_once_impl self(*args, **kw) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/event/attr.py", line 322, in __call__ fn(*args, **kw) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/util/langhelpers.py", line 1485, in go return once_fn(*arg, **kw) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/strategies.py", line 199, in first_connect dialect.initialize(c) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/dialects/mysql/base.py", line 2424, in initialize self._detect_sql_mode(connection) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/dialects/mysql/base.py", line 2881, in _detect_sql_mode connection.execute("SHOW VARIABLES LIKE 'sql_mode'"), File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 976, in execute return self._execute_text(object_, multiparams, params) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1149, in _execute_text parameters, File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1250, in _execute_context e, statement, parameters, cursor, context File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception util.raise_from_cause(sqlalchemy_exception, exc_info) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/util/compat.py", line 152, in reraise raise value.with_traceback(tb) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context cursor, statement, parameters, context File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/sqlalchemy/engine/default.py", line 581, in do_execute cursor.execute(statement, parameters) File "/data/project/watch-translations/www/python/venv/lib/python3.4/site-packages/MySQLdb/cursors.py", line 206, in execute raise ProgrammingError(str(m)) sqlalchemy.exc.ProgrammingError: (MySQLdb._exceptions.ProgrammingError) unsupported operand type(s) for %: 'bytes' and 'tuple' [SQL: SHOW VARIABLES LIKE 'sql_mode'] (Background on this error at: http://sqlalche.me/e/f405)