ensure bmc-state-manager stays in quiesce state
Unsubscribing from systemd signals only prevents signals if no other
service within OpenBMC is subscribed. This is never going to be the case
in OpenBMC so along with unsubscribing, also reset the object
responsible for the callbacks within bmc-state-manager.
This is to ensure that once bmc-state-manager enters Quiesced, it never
exits from it. Have seen on a few systems that the multi-user.target
generates some events during different boot tests, causing
bmc-state-manager to reset the state to Ready.
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ibe30cd631df7ac5f34e7bcb3640be27348034074
diff --git a/bmc_state_manager.cpp b/bmc_state_manager.cpp
index ba8ee16..37597f8 100644
--- a/bmc_state_manager.cpp
+++ b/bmc_state_manager.cpp
@@ -212,6 +212,9 @@
info("Error in Unsubscribe: {ERROR}", "ERROR", e);
}
+ // disable the system state change object as well
+ stateSignal.reset();
+
return 0;
}