MXS-3345: Create persistdir earlier

The directory was created when the configuration was being processed and
it wasn't checked unless it was configured to a non-default value. With
the addition of the path validation, the directory must be created
earlier.
This commit is contained in:
Markus Mäkelä 2021-02-10 14:58:40 +02:00
parent 2657cc100e
commit e48c5d11fc
No known key found for this signature in database
GPG Key ID: 5CE746D557ACC499
2 changed files with 6 additions and 6 deletions

View File

@ -1436,9 +1436,7 @@ static bool config_load_and_process(const char* filename, bool (* process_config
rval = config_load_dir(dir, &dcontext, &config_context);
}
/** Create the persisted configuration directory if it doesn't exist */
const char* persist_cnf = get_config_persistdir();
mxs_mkdir_all(persist_cnf, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if (config_get_global_options()->load_persisted_configs
&& is_directory(persist_cnf) && contains_cnf_files(persist_cnf))

View File

@ -1810,10 +1810,7 @@ int main(int argc, char** argv)
break;
case '?':
if (check_paths())
{
usage();
}
usage();
rc = EXIT_SUCCESS;
goto return_main;
@ -2047,6 +2044,11 @@ int main(int argc, char** argv)
goto return_main;
}
// Try to create the persisted configuration directory. This needs to be done before the path validation
// done by check_paths() to prevent it from failing. The directory wont' exist if it's the first time
// MaxScale is starting up with this configuration.
mxs_mkdir_all(get_config_persistdir(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if (!check_paths())
{
rc = MAXSCALE_BADCONFIG;