Skip to content

Commit 8ec8e01

Browse files
authored
Merge pull request #149 from gao-yan/no-pcmk-integration-no-sync-resource-startup
Fix: sbd-inquisitor: fail startup if pacemaker integration is disabled while SBD_SYNC_RESOURCE_STARTUP is conflicting
2 parents c43276f + bacb6e7 commit 8ec8e01

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/sbd-inquisitor.c

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ static struct servants_list_item *servants_leader = NULL;
2525
int disk_priority = 1;
2626
int check_pcmk = 1;
2727
int check_cluster = 1;
28+
int has_check_pcmk_env = false;
2829
int disk_count = 0;
2930
int servant_count = 0;
3031
int servant_restart_interval = 5;
@@ -949,8 +950,10 @@ int main(int argc, char **argv, char **envp)
949950
if(value) {
950951
check_pcmk = crm_is_true(value);
951952
check_cluster = crm_is_true(value);
953+
954+
has_check_pcmk_env = true;
952955
}
953-
cl_log(LOG_INFO, "Enable pacemaker checks: %d (%s)", (int)check_pcmk, value?value:"default");
956+
cl_log(LOG_INFO, "SBD_PACEMAKER set to: %d (%s)", (int)check_pcmk, value?value:"default");
954957

955958
value = get_env_option("SBD_STARTMODE");
956959
if(value == NULL) {
@@ -1202,7 +1205,17 @@ int main(int argc, char **argv, char **envp)
12021205
}
12031206

12041207
if (P_count > 0) {
1205-
check_pcmk = arg_enabled(P_count);
1208+
int check_pcmk_arg = arg_enabled(P_count);
1209+
1210+
if (has_check_pcmk_env && check_pcmk_arg != check_pcmk) {
1211+
cl_log(LOG_WARNING, "Pacemaker integration is %s: "
1212+
"SBD_PACEMAKER=%s is overridden by %s option. "
1213+
"It's recommended to only use SBD_PACEMAKER.",
1214+
check_pcmk_arg? "enabled" : "disabled",
1215+
check_pcmk? "yes" : "no",
1216+
check_pcmk_arg? "-P" : "-PP");
1217+
}
1218+
check_pcmk = check_pcmk_arg;
12061219
}
12071220

12081221
if ((disk_count > 0) && (strlen(local_uname) > SECTOR_NAME_MAX)) {
@@ -1276,10 +1289,16 @@ int main(int argc, char **argv, char **envp)
12761289
goto out;
12771290
}
12781291
#else
1279-
if (!sync_resource_startup) {
1292+
if (check_pcmk && !sync_resource_startup) {
12801293
cl_log(LOG_WARNING, "SBD built against pacemaker supporting "
12811294
"pacemakerd-API. Should think about enabling "
12821295
"SBD_SYNC_RESOURCE_STARTUP.");
1296+
1297+
} else if (!check_pcmk && sync_resource_startup) {
1298+
fprintf(stderr, "Set SBD_PACEMAKER=yes to allow resource startup syncing. "
1299+
"Otherwise explicitly set SBD_SYNC_RESOURCE_STARTUP=no if to intentionally disable.\n");
1300+
exit_status = -1;
1301+
goto out;
12831302
}
12841303
#endif
12851304
}

0 commit comments

Comments
 (0)