Today the eventlogging_cleaner script crashed on dbstore1002 due to the fact that we assumed that the uuid field was char everywhere (for the log database`). This seems to be true on db1047 but not on dbstore1002:
elukey@stat1002:~$ mysql -h analytics-slave.eqiad.wmnet <<< "SELECT count(table_name) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='log' and not DATA_TYPE='binary' and COLUMN_NAME='uuid';" count(table_name) 383 elukey@stat1002:~$ mysql -h analytics-store.eqiad.wmnet <<< "SELECT count(table_name) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='log' and not DATA_TYPE='binary' and COLUMN_NAME='uuid';" count(table_name) 117
I checked a one show create table to figure out the source of the inconsistency and:
elukey@stat1002:~$ mysql -h analytics-store.eqiad.wmnet <<< "show create table log.CentralAuth_5690875" [..] ENGINE=TokuDB DEFAULT CHARSET=binary `compression`='tokudb_zlib' elukey@stat1002:~$ mysql -h analytics-slave.eqiad.wmnet <<< "show create table log.CentralAuth_5690875" [..] ENGINE=TokuDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci `compression`='tokudb_zlib'
This should not come from the eventlogging master since both hosts are running the same sync script, but probably from:
elukey@stat1002:~$ mysql -h analytics-store.eqiad.wmnet <<< "show create database log" Database Create Database log CREATE DATABASE `log` /*!40100 DEFAULT CHARACTER SET binary */ elukey@stat1002:~$ mysql -h analytics-slave.eqiad.wmnet <<< "show create database log" Database Create Database log CREATE DATABASE `log` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */
Interestingly enough:
elukey@db1046:~$ sudo mysql -h localhost --skip-ssl <<< "show create database log;" Database Create Database log CREATE DATABASE `log` /*!40100 DEFAULT CHARACTER SET binary */
The script can probably be fixed with this hack: https://gerrit.wikimedia.org/r/#/c/365992/
But what would be the best course of action to keep the new tables creation process consistent?