This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-15. For the latest, interactive version please visit https://mariadb.com/kb/.

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.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.