| Bug #96501 | MySQL server doesn't start and no error in the log | ||
|---|---|---|---|
| Submitted: | 10 Aug 2019 17:14 | Modified: | 12 Dec 2019 2:00 |
| Reporter: | Marco Tusa | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Options | Severity: | S2 (Serious) |
| Version: | 8.0.17, 8.0.11 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | GLOBAL VARABLES, json, mysql8, persist | ||
[11 Aug 2019 12:23]
MySQL Verification Team
Hello Marco Tusa, Thank you for the report and feedback. Agree with your conclusion that it should have logged/reported an error. This was expected behavior as documented i.e quoting from manual "Manual changes to the file may result in a parse error at server startup. In this case, the server reports an error and exits". - https://dev.mysql.com/doc/refman/8.0/en/persisted-system-variables.html regards, Umesh
[11 Aug 2019 12:25]
MySQL Verification Team
Test results - 8.0.17
Attachment: 96501_8.0.17.results (application/octet-stream, text), 15.65 KiB.
[11 Aug 2019 12:28]
MySQL Verification Team
- Lowest version checked 8.0.11, similar behavior
[12 Dec 2019 2:00]
Paul DuBois
Posted by developer: Fixed in 8.0.20. If the mysqld-auto.cnf file was malformed, the server did not start (expected), but did not report any error (unexpected).

Description: If mysqld find that the mysqld-auto.cnf in the data directory has invalid json, whatever is the reason why, it doesn't start and there is NO message in the error log. IE : mysqld-auto.cnf: { "Version" : 1 , "mysql_server" : { "wait_timeout": { "Value : "150" , "Metadata" : { "Timestamp" : 1565455891278414, "User" : "root" , "Host" : "localhost" } } } } Check the missing quote after the VALUE label console: tusa@tusa-dev:/opt/mysql_templates/mysql-8.0.17futex$ ps aux|grep 8113 tusa 8119 0.0 0.0 14224 896 pts/1 S+ 12:54 0:00 grep --color=auto 8113 [1]+ Exit 1 bin/mysqld --defaults-file=./my.cnf LOG: no message I agree that this file SHOULD NOT NE TOUCH by hand, but at the same time I think the server should raise the error. How to repeat: 1) start mysqld (8.17) 2) SET PERSIST wait_timeout = X 3) Stop mysqld 4) manually do something stupid on the mysqld-auto.cnf 5) restart mysqld Suggested fix: This is a problem in the Json parser, and human stupidity, I just think we should have the server indicating the problem in the error log