On some systems, res_corosync isn't compatible with the installed version of
corosync so corosync_cfg_initialize fails, load_module returns LOAD_FAILURE,
and Asterisk terminates. The work around has been to remember to add
res_corosync as a noload in modules.conf. A better solution though is to have
res_corosync check for its config file before attempting to call corosync apis
and return LOAD_DECLINE if there's no config file. This lets Asterisk loading
continue.
If you have a res_corosync.conf file and res_corosync fails, you get the same
behavior as today and the fatal error tells you something is wrong with the
install.
ASTERISK-24998
Change-Id: Iaf94a9431a4922ec4ec994003f02135acfdd3889
goto failed;
}
+ if (load_config(0)) {
+ /* simply not configured is not a fatal error */
+ res = AST_MODULE_LOAD_DECLINE;
+ goto failed;
+ }
+
if ((cs_err = corosync_cfg_initialize(&cfg_handle, &cfg_callbacks)) != CS_OK) {
ast_log(LOG_ERROR, "Failed to initialize cfg: (%d)\n", (int) cs_err);
goto failed;
goto failed;
}
- if (load_config(0)) {
- /* simply not configured is not a fatal error */
- res = AST_MODULE_LOAD_DECLINE;
- goto failed;
- }
-
ast_cli_register_multiple(corosync_cli, ARRAY_LEN(corosync_cli));
return AST_MODULE_LOAD_SUCCESS;