From 1c3a99ab6a02fa678827590611235cfee09d8b02 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sun, 18 Aug 2024 00:00:14 -0400 Subject: [PATCH] Fix issues with retrieving process memory --- .../Components/Session/SessionController.cs | 2 +- src/Tgstation.Server.Host/System/IProcessBase.cs | 2 +- src/Tgstation.Server.Host/System/Process.cs | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs index 6880ed7f6d..754b672b7d 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs @@ -122,7 +122,7 @@ namespace Tgstation.Server.Host.Components.Session public FifoSemaphore TopicSendSemaphore { get; } /// - public long MemoryUsage => process.MemoryUsage; + public long? MemoryUsage => process.MemoryUsage; /// /// The for the . diff --git a/src/Tgstation.Server.Host/System/IProcessBase.cs b/src/Tgstation.Server.Host/System/IProcessBase.cs index f34d5e6597..6ae88dce50 100644 --- a/src/Tgstation.Server.Host/System/IProcessBase.cs +++ b/src/Tgstation.Server.Host/System/IProcessBase.cs @@ -16,7 +16,7 @@ namespace Tgstation.Server.Host.System /// /// Gets the process' memory usage in bytes. /// - long MemoryUsage { get; } + long? MemoryUsage { get; } /// /// Set's the owned to a non-normal value. diff --git a/src/Tgstation.Server.Host/System/Process.cs b/src/Tgstation.Server.Host/System/Process.cs index 64c92bf89b..13a1a278f5 100644 --- a/src/Tgstation.Server.Host/System/Process.cs +++ b/src/Tgstation.Server.Host/System/Process.cs @@ -23,7 +23,21 @@ namespace Tgstation.Server.Host.System public Task Lifetime { get; } /// - public long MemoryUsage => handle.VirtualMemorySize64; + public long? MemoryUsage + { + get + { + try + { + return handle.VirtualMemorySize64; + } + catch (Exception ex) + { + logger.LogWarning(ex, "Failed to get PID {pid}'s memory usage!", Id); + return null; + } + } + } /// /// The for the .