• Vlad Lesin's avatar
    MDEV-18215: mariabackup does not report unknown command line options · 9bdf35e9
    Vlad Lesin authored
    MDEV-21298: mariabackup doesn't read from the [mariadbd] and [mariadbd-X.Y]
    server option groups from configuration files
    MDEV-21301: mariabackup doesn't read [mariadb-backup] option group in
    configuration file
    
    All three issues require to change the same code, that is why their
    fixes are joined in one commit.
    
    The fix is in invoking load_defaults_or_exit() and handle_options() for
    backup-specific groups separately from client-server groups to let the last
    handle_options() call fail on unknown backup-specific options.
    
    The order of options procesing is the following:
    1) Load server groups and process server options, ignore unknown
    options
    2) Load client groups and process client options, ignore unknown
    options
    3) Load backup groups and process client-server options, exit on
    unknown option
    4) Process --mysqld-args command line options, ignore unknown options
    
    New global flag my_handle_options_init_variables was added to have
    ability to invoke handle_options() for the same allowed options set
    several times without re-initialising previously set option values.
    
    --password value destroying is moved from option processing callback to
    mariabackup's handle_options() function to have ability to invoke server's
    handle_options() several times for the same possible allowed options
    set.
    
    Galera invokes wsrep_sst_mariabackup.sh with mysqld command line
    options to configure mariabackup as close to the server as possible.
    It is not known what server options are supported by mariabackup when the
    script is invoked. That is why new mariabackup option "--mysqld-args" is added,
    all unknown options that follow this option will be silently ignored.
    
    wsrep_sst_mariabackup.sh was also changed to:
    - use "--mysqld-args" mariabackup option to pass mysqld options,
    - remove deprecated innobackupex mode,
    - remove unsupported mariabackup options:
        --encrypt
        --encrypt-key
        --rebuild-indexes
        --rebuild-threads
    9bdf35e9
innobackupex.cc 38 KB