Bug #72429 handling of options, expire logs
Submitted: 23 Apr 2014 8:30 Modified: 26 Apr 2014 8:02
Reporter: Waltraut Niepraschk Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Options Severity:S3 (Non-critical)
Version:5.5 , 5.6 OS:Any (options ignored, option handling intransparent )
Assigned to: CPU Architecture:Any
Tags: expire_logs_days options

[23 Apr 2014 8:30] Waltraut Niepraschk
Description:
After upgrading to 5.5 on RedHat5 (after a security problem) we did run in problems because the option "expire_logs_days" was not respected any more.
We found out that the option has to be in the "mysqld" or "server" section while
we had it in "mysqld_safe".
If an option in a section does not make sense it should be reported as an error
and the server should not start.
There are also reasons why the binlog expiry does not work: the binlog files have not a good timestamp, the order is not ok, ...
This should be reported in the log in such cases (default log level).

How to repeat:
put expire_logs_days into section "mysqld_safe" and print the value of
the variable
[24 Apr 2014 8:02] MySQL Verification Team
Hello Waltraut,

Thank you for the bug report.
In my opinion - Options unknown to mysqld_safe are passed to mysqld if they are specified on the command line, but ignored if they are specified in the [mysqld_safe] group of an option file.

Also, I don't see expire_logs_days listed in mysqld_safe Options - http://dev.mysql.com/doc/refman/5.5/en/mysqld-safe.html

Could you please provide more details on from which version you have upgraded to 5.5( release in 5.5)? Also, could you please provide conf file used before/after upgrade?

Thanks,
Umesh
[25 Apr 2014 8:07] Waltraut Niepraschk
Dear Umesh,

the software is working as you described it. Nevertheless I do regard that as a bug: If a variable in [mysqld_safe] is misspelled then that correctly results in an error. If a variable is in
the wrong section and does therefore not have an effect, this is a user configuration error and should result in a similar error.

While you are right that expire_logs_days is properly described, the wrong configuration led in our case to a server malfunctioning long after the server was started. Would it have reported
immediately the damage would have been minimal.

The upgrade was from 5.1.70 (where expire_logs_days was in the correct section) to 5.5.36 (where we mistakenly moved it to the wrong section).

Thanks
Waltraut
[26 Apr 2014 8:02] MySQL Verification Team
Hello Waltraut,

Thank you for your feedback.
I do feel that options specified under mysqld_safe group of option file should have been handled the same way as it done when options unknown to mysqld_safe are passed to mysqld if they are specified on the command line. or at least a note should be logged in error log stating that 'xyz' option used under mysqld_safe group are unknown to mysqld_safe and hence ignored.. 

Thanks,
Umesh