Upgrade to MariaDB 10.6.0 breaks MythTV
Hell-o. I am running a Slackware 14.2 distribution with MariaDB on it. I have used the MariaDB for a couple of web applications and it has always worked great. Recently I ran a slackpkg update on my Slack server whereupon the MariaDB version was upgraded from 10.5.9 to 10.6.0. Now I cannot get my MythTV application, which I've had running for about a year, to start. Here is the output.
# tail -f mythbackend.20210502215839.1743.log 2021-05-02 16:58:40.715548 I [1743/1743] CoreContext mythcorecontext.cpp:1842 (SaveLocaleDefaults) - Current locale en_US 2021-05-02 16:58:40.718674 N [1743/1743] CoreContext mythlocale.cpp:121 (LoadDefaultsFromXML) - Reading locale defaults from /usr/local/share/mythtv//locales/en_us.xml 2021-05-02 16:58:41.385661 I [1743/1743] CoreContext platforms/mythpowerdbus.cpp:530 (AcquireLock) - PowerDBus: Failed to delay sleep,shutdown: Permission denied 2021-05-02 16:58:41.388127 I [1743/1743] CoreContext platforms/mythpowerdbus.cpp:360 (DeviceAdded) - PowerDBus: Added UPower.Device '/org/freedesktop/UPower/devices/ups_hiddev0' 2021-05-02 16:58:41.388370 I [1743/1743] CoreContext mythpower.cpp:348 (PowerLevelChanged) - Power: On AC power 2021-05-02 16:58:41.436508 I [1743/1743] CoreContext mythpower.cpp:131 (Init) - Power: Supported actions: None 2021-05-02 16:58:41.438550 I [1743/1743] CoreContext mythtranslation.cpp:62 (load) - Loading en_us translation for module mythfrontend 2021-05-02 16:58:41.439395 E [1743/1743] CoreContext main_helpers.cpp:563 (run_backend) - MySQL time zone support is missing. Please install it and try again. See 'mysql_tzinfo_to_sql' for assistance. 2021-05-02 16:58:41.440216 I [1743/1743] CoreContext platforms/mythpowerdbus.cpp:72 (~MythPowerDBus) - PowerDBus: Closing interfaces 2021-05-02 16:58:41.440927 I [1743/1743] CoreContext mythcontext.cpp:1665 (~MythContext) - Exiting
I am being advised that the MySQL time zone support is missing and to use mysql_tzinfo_to_sql fo install it which I had done on the original installation and it worked. Here is what I get now when I run the mysql_tzinfo_to_sql script..
root@robrutrm:~# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql Enter password: ERROR 1064 (42000) at line 21: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Offset, Is_DST, Abbreviation) VALUES (@time_zone_id, 0, -968, 0, 'LMT') ,(@t...' at line 1
I then ran mysql_tzinfo_to_sql /usr/share/zoneinfo > tz.fix. I could then look at the output file from invoking mysql_tzingo_to_sql and I see line 21 from above where it is hanging up..
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (@time_zone_id, 0, -968, 0, 'LMT') ,(@time_zone_id, 1, 0, 0, 'GMT') ;
I can remove this whole INSERT INTO statement or I can remove the Offset field with its values and the script will run until it hits the next INSERT INTO statement similar to this one. I have another Slackware box that I am running the same image on and I did all the other updates except the MariaDB upgrade and the mysql_tzinfo_to_sql script runs just fine on it. In fact MythTV still starts just fine on this second box, but it is not my primary box where I do my recordings with MythTV. I then took the old mysql_tzinfo_to_sql script from this secondary box (which still has MariaDB 10.5.9 running on it) and loaded it on the primary Slack distribution. I got the same syntax error running this old mysql_tzinfo_to_sql script on the upgraded box even though it is a slightly smaller and different file, but with pretty much the same INSERT INTO statements.
For the life of me I do not see a syntax error here. Is this a bug with version 10.6.0 or is there stricter syntax checking with the new version? If either of these is the case is there a workaround for it or a fix coming out? I cannot start my MythTV application in the meantime.
Thanks for any and all suggestions.
Answer Answered by Daniel Black in this comment.
Apologizes, I discovered this too after release, MDEV-25556. This will be corrected by next release.
If you have access to MythTV's scripts you could do something like I did here: https://github.com/MariaDB/mariadb-docker/commit/05b608ee5a2c24ae09936e7609b48f589fcd368a
mysql_tzinfo_to_sql | sed -e 's/Offset/`Offset`/' | mysql ....
Thank you for testing. Please put any other bugs you find in https://jira.mariadb.org.