From dd429e9597993e3b2cb78b4ccce543884794a32a Mon Sep 17 00:00:00 2001 From: Pavel Krymets Date: Thu, 9 Aug 2018 09:45:28 -0700 Subject: [PATCH] Catch exceptions thrown by is_regular_file (#1179) --- .../CommonLib/PollingAppOfflineApplication.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/AspNetCoreModuleV2/CommonLib/PollingAppOfflineApplication.cpp b/src/AspNetCoreModuleV2/CommonLib/PollingAppOfflineApplication.cpp index e9bbb42383..14629ebe10 100644 --- a/src/AspNetCoreModuleV2/CommonLib/PollingAppOfflineApplication.cpp +++ b/src/AspNetCoreModuleV2/CommonLib/PollingAppOfflineApplication.cpp @@ -27,12 +27,20 @@ PollingAppOfflineApplication::CheckAppOffline() SRWExclusiveLock lock(m_statusLock); if (ulCurrentTime - m_ulLastCheckTime > c_appOfflineRefreshIntervalMS) { - m_fAppOfflineFound = is_regular_file(m_appOfflineLocation); - if(m_fAppOfflineFound) + try { - LOG_IF_FAILED(OnAppOfflineFound()); + m_fAppOfflineFound = is_regular_file(m_appOfflineLocation); + if(m_fAppOfflineFound) + { + LOG_IF_FAILED(OnAppOfflineFound()); + } + m_ulLastCheckTime = ulCurrentTime; + } + catch (...) + { + // is_regular_file might throw in very rare cases + OBSERVE_CAUGHT_EXCEPTION(); } - m_ulLastCheckTime = ulCurrentTime; } }