Bug 247121

Summary: databases/mariadb104-server: new my.cnf overrides existing configs
Product: Ports & Packages Reporter: Vincent Milum Jr <freebsd>
Component: Individual Port(s)Assignee: Bernard Spil <brnrd>
Status: Closed Works As Intended    
Severity: Affects Many People CC: mail
Priority: --- Flags: bugzilla: maintainer-feedback? (brnrd)
Version: Latest   
Hardware: Any   
OS: Any   

Description Vincent Milum Jr 2020-06-09 19:29:08 UTC
If we already have a file in /usr/local/etc/my.cnf with settings such as bind-address, the newly added /usr/local/etc/mysql/conf.d/my.cnf overrides these settings if the config option is present in both files.

I specifically mention the bind-address, because the newly included file forces the bind-address=127.0.0.1, making the server entirely inaccessible to the network.

Running a simple "pkg upgrade" followed by "service mysql-server restart" should not break connectivity to the server, but upgrading from 10.4.12 to 10.4.13_2 currently does, and requires removing the newly created .cnf file with conflicting configurations.
Comment 1 Bernard Spil freebsd_committer freebsd_triage 2020-06-12 19:36:23 UTC
Hi Vincent,

I'm sorry for breaking your environment. This is documented in UPDATING, but was sure to catch out some people.

Going forward, you should expect to move files to locations specified by hier(7) in 10.5. Config in /usr/local/etc/mysql, logs in /var/log/mysql, etc.

Hope you've fixed it already, let me know if you still have issues.
Comment 2 ~Luna 2020-06-26 09:57:59 UTC
Yesterday we upgraded mariadb104-server from version 10.4.13_1 to 10.4.13_2 with pkg. Mysql broke completely and in the end we have had 16 hours of downtime on services (and unfortunately) quite some websites of non-profit organizations.

What happened was that a completely stock/default mariadb104-server configuration that was installed by the mariadb104-server-10.4.13_1 package (except of course a rc.conf entry) was somehow overwritten by the new patch default configuration layout and broke mysql completely. Since both service and mariadb don't log issues related to a failed service start this was a hell to figure out. In the end (and after some sleep) we used the directory and configuration file structure in the cached 10.4.13_1 package to remove all the new broken configuration files and restore the previous layout. And voila, everything worked again. The new my.cnf in combination with the files in conf.d broke it and removing them was the solution.

I really don't understand why one would make such a breaking change to the configuration layout in the middle of some really minor patch release. It's not like we went from mariadb 10.4 to 10.5, not even from 10.4.13 to 10.4.14. But even if that was the case, just running pkg upgrade should not break an entire package.

I also don't think it's reasonable to expect people to read UPDATE notices for every minor patch update on every package port pages. That really is just the opposite of 'stable software'. People praise FreeBSD for its stability (and I agree/advocate this), but I think this breaking change really makes no sense in that regard.