Added catch-all rule to system service guan file.

This commit is contained in:
Charles Torre 2022-07-07 11:57:44 -07:00
Родитель 07b1e2e6d9
Коммит d10ad7a6dc
2 изменённых файлов: 8 добавлений и 5 удалений

Просмотреть файл

@ -112,4 +112,9 @@ Mitigate(MetricName="FileHandles", OS="Linux", ProcessName=?SysProcName) :- not(
## Open File Handles - Linux, Fabric or FabricHost. In these cases, we want a safe (graceful) restart of the Fabric node; not just kill the process, which will restart the node, but not gracefully.
## Restart the Fabric node where the offending instance is running.
Mitigate(MetricName="FileHandles", OS="Linux", ProcessName="Fabric") :- TimeScopedRestartFabricNode(2, 08:00:00).
Mitigate(MetricName="FileHandles", OS="Linux", ProcessName="Fabric") :- TimeScopedRestartFabricNode(2, 08:00:00).
## Generic catch-all.
## Doesn't matter what the problem is, just restart the service process if it is not Fabric or FabricHost (for hopefully obvious reasons).
Mitigate(ProcessName=?SysProcName) :- not(?SysProcName == "Fabric" || ?SysProcName == "FabricHost"), TimeScopedRestartFabricSystemProcess(2, 08:00:00).

Просмотреть файл

@ -600,12 +600,10 @@ namespace FabricHealer.Repair
try
{
// FO provided the offending process id in TelemetryData instance. Chances are good it will still be running.
// If the process with this id is no longer running, then we can assume it makes no sense to try to restart it:
// Just let the ArgumentException bubble out to the catch.
// FO/FHProxy provided the offending process id and (or, in the case of FHProxy) name in TelemetryData instance.
if (repairData.ProcessId > 0)
{
p = Process.GetProcessById((int)repairData.ProcessId);
p = Process.GetProcessById((int)repairData.ProcessId);
}
else // We need to figure out the procId from the FO-supplied proc name.
{