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).
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.039 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
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