Merge pull request #8848 from Icinga/bugfix/harden-scheduled-downtimes

ScheduledDowntime::TimerProc(): Catch exceptions to make sure other downtimes are still created
This commit is contained in:
Julian Brost 2021-06-28 17:16:57 +02:00 committed by GitHub
commit 5fdfd47176
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 2 deletions

View File

@ -87,8 +87,15 @@ void ScheduledDowntime::Start(bool runtimeCreated)
void ScheduledDowntime::TimerProc() void ScheduledDowntime::TimerProc()
{ {
for (const ScheduledDowntime::Ptr& sd : ConfigType::GetObjectsByType<ScheduledDowntime>()) { for (const ScheduledDowntime::Ptr& sd : ConfigType::GetObjectsByType<ScheduledDowntime>()) {
if (sd->IsActive() && !sd->IsPaused()) if (sd->IsActive() && !sd->IsPaused()) {
sd->CreateNextDowntime(); try {
sd->CreateNextDowntime();
} catch (const std::exception& ex) {
Log(LogCritical, "ScheduledDowntime")
<< "Exception occurred during creation of next downtime for scheduled downtime '"
<< sd->GetName() << "': " << DiagnosticInformation(ex, false);
}
}
} }
} }