mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Do not stop powershell when can't create telemetry mutex. (#15574)
This commit is contained in:
@@ -835,29 +835,30 @@ namespace Microsoft.PowerShell.Telemetry
|
||||
|
||||
// Multiple processes may start simultaneously so we need a system wide
|
||||
// way to control access to the file in the case (although remote) when we have
|
||||
// simulataneous shell starts without the persisted file which attempt to create the file.
|
||||
using (var m = new Mutex(true, "CreateUniqueUserId"))
|
||||
// simultaneous shell starts without the persisted file which attempt to create the file.
|
||||
try
|
||||
{
|
||||
// TryCreateUniqueIdentifierAndFile shouldn't throw, but the mutex might
|
||||
using var m = new Mutex(true, "CreateUniqueUserId");
|
||||
m.WaitOne();
|
||||
try
|
||||
{
|
||||
m.WaitOne();
|
||||
if (TryCreateUniqueIdentifierAndFile(uuidPath, out id))
|
||||
{
|
||||
return id;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Any problem in generating a uuid will result in no telemetry being sent.
|
||||
// Try to send the failure in telemetry, but it will have no unique id.
|
||||
s_telemetryClient.GetMetric(_telemetryFailure, "Detail").TrackValue(1, "mutex");
|
||||
}
|
||||
finally
|
||||
{
|
||||
m.ReleaseMutex();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Any problem in generating a uuid will result in no telemetry being sent.
|
||||
// Try to send the failure in telemetry, but it will have no unique id.
|
||||
s_telemetryClient.GetMetric(_telemetryFailure, "Detail").TrackValue(1, "mutex");
|
||||
}
|
||||
|
||||
// something bad happened, turn off telemetry since the unique id wasn't set.
|
||||
CanSendTelemetry = false;
|
||||
|
||||
Reference in New Issue
Block a user