• Tony Chen's avatar
    MDEV-26923 Check all invalid config options · 32546877
    Tony Chen authored
    Previously, the behavior was to error out on the first invalid option
    encountered. With this change, a best effort approach is made so that
    all invalid options processed will be printed before exiting.
    
    There is a caveat. The options are processed many times at varying
    stages of server startup because the server is not aware of all valid
    options immediately (e.g. plugins have to be loaded first before the
    server knows what are the available plugin options). So, there are some
    options that the server can determine are invalid "early" on, and there
    are some options that the server cannot determine are invalid until
    "later" on. For example, the server can determine an option such as
    `--a` is an ambiguous option very early on but an option such as
    `--this-does-not-match-any-option` cannot be labelled as invalid until
    the server is aware of all available options.
    
    Thus, it is possible that the server will still fail before printing out
    all "invalid" options. You can see this by passing `--a
    --obvious-invalid-option`.
    
    Test cases were added to `mysqld_option_err.test` to validate that
    multiple invalid options will be displayed in the error message.
    
    All new code of the whole pull request, including one or several files
    that are either new files or modified ones, are contributed under the
    BSD-new license. I am contributing on behalf of my employer Amazon Web
    Services.
    32546877
mysqld_option_err.test 3.6 KB