Description:
It's known (see bug #63187, for example) that
mysqld --help --verbose
command starts server to some extent and even load plugins in attempt to check server and plugin configuration variables. it also produces exit code >0 in case of any errors, like in this case on Windows:
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld.exe --help --verbose --innodb_thread_concurrency=FFF 2>&1 >NUL
2014-01-29 17:29:07 6780 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.6\data\pc-PC.lower-test
2014-01-29 17:29:07 6780 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.6\data\pc-PC.lower-test
2014-01-29 17:29:07 6780 [Note] Plugin 'FEDERATED' is disabled.
Unknown suffix 'F' used for variable 'innodb-thread-concurrency' (value 'FFF')
2014-01-29 17:29:07 6780 [ERROR] mysqld.exe: Error while setting value 'FFF' to 'innodb-thread-concurrency'
2014-01-29 17:29:07 6780 [ERROR] Parsing options for plugin 'InnoDB' failed.
2014-01-29 17:29:07 6780 [ERROR] mysqld.exe: unknown variable 'innodb_thread_concurrency=FFF'
2014-01-29 17:29:09 6780 [ERROR] Aborting
2014-01-29 17:29:09 6780 [Note] Binlog end
2014-01-29 17:29:09 6780 [Note] Shutting down plugin 'MyISAM'
2014-01-29 17:29:09 6780 [Note] Shutting down plugin 'CSV'
C:\Program Files\MySQL\MySQL Server 5.6\bin>echo %ERRORLEVEL%
7
But innodb_flush_method seems "special" in this regard:
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld.exe --help --verbose --innodb_flush_method=BULLSHIT >NUL
2014-01-29 18:03:55 8048 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.6\data\pc-PC.lower-test
2014-01-29 18:03:55 8048 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.6\data\pc-PC.lower-test
2014-01-29 18:03:55 8048 [Note] Plugin 'FEDERATED' is disabled.
2014-01-29 18:03:57 8048 [Note] Binlog end
2014-01-29 18:03:57 8048 [Note] Shutting down plugin 'MyISAM'
2014-01-29 18:03:57 8048 [Note] Shutting down plugin 'CSV'
C:\Program Files\MySQL\MySQL Server 5.6\bin>echo %ERRORLEVEL%
0
No errors, but I truly doubt this is a valid value for the option...
How to repeat:
Run the following command:
mysqld --help --verbose --inoodb_flush_method=BULLSHIT >/dev/null
(or it's variation for your favorite OS) and check error messages (if any) and exit code. Then compare to any unknown variables or bad/unacceptable value passed for any other server variables. Make your own conclusions.
Suggested fix:
Make sure to set exit code to >0 for all cases of bad options/server variables/plugin variables settings for mysqld [--help --verbose] command.