From 0bd813bf2b1bc75fe41a266e9781bca3c51bce59 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 22 May 2024 13:22:12 +0000
Subject: [PATCH 01/19] Update dependencies from
https://github.com/dotnet/diagnostics build 20240521.1 (#6704)
[main] Update dependencies from dotnet/diagnostics
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 4ed878e130f..9c03ec21b6c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- 35998bc24f3ce093f3cef0cc50e224f9b07847ca
+ 4a64bc5c0fd3abf17f5b10efbc91051c186db4d3
-
+
https://github.com/dotnet/diagnostics
- 35998bc24f3ce093f3cef0cc50e224f9b07847ca
+ 4a64bc5c0fd3abf17f5b10efbc91051c186db4d3
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
e6f70c7dd528f05cd28cec2a179d58c22e91d9ac
-
+
https://github.com/dotnet/diagnostics
- 35998bc24f3ce093f3cef0cc50e224f9b07847ca
+ 4a64bc5c0fd3abf17f5b10efbc91051c186db4d3
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index 4efff11eab7..cc3b16ea277 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24270.1
- 8.0.0-preview.24270.1
+ 8.0.0-preview.24271.1
+ 8.0.0-preview.24271.1
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.527001
+ 1.0.527101
$(MicrosoftNETCoreApp31Version)
From b22fa02f6187bfd18a35ab6cf7ca62fb12fffc9c Mon Sep 17 00:00:00 2001
From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com>
Date: Wed, 22 May 2024 13:08:57 -0700
Subject: [PATCH 02/19] Validate IPC message commandset before acknowledging
(#6699)
---
.../Communication/CommandServer.cpp | 24 ++++++++++++++++---
.../Communication/CommandServer.h | 9 +++++--
.../Communication/MessageCallbackManager.cpp | 16 ++++++++++---
.../Communication/MessageCallbackManager.h | 9 ++++++-
.../MainProfiler/MainProfiler.cpp | 15 +++++++++++-
.../MainProfiler/MainProfiler.h | 1 +
src/inc/macros.h | 6 ++++-
7 files changed, 69 insertions(+), 11 deletions(-)
diff --git a/src/Profilers/MonitorProfiler/Communication/CommandServer.cpp b/src/Profilers/MonitorProfiler/Communication/CommandServer.cpp
index 7da903c2c00..3bae1c139a0 100644
--- a/src/Profilers/MonitorProfiler/Communication/CommandServer.cpp
+++ b/src/Profilers/MonitorProfiler/Communication/CommandServer.cpp
@@ -13,7 +13,10 @@ CommandServer::CommandServer(const std::shared_ptr& logger, ICorProfile
{
}
-HRESULT CommandServer::Start(const std::string& path, std::function callback)
+HRESULT CommandServer::Start(
+ const std::string& path,
+ std::function callback,
+ std::function validateMessageCallback)
{
if (_shutdown.load())
{
@@ -31,6 +34,7 @@ HRESULT CommandServer::Start(const std::string& path, std::functionLog(LogLevel::Error, _LS("Unexpected error when receiving data: 0x%08x"), hr);
+ // Best-effort shutdown, ignore the result.
+ client->Shutdown();
continue;
}
+ bool doEnqueueMessage = true;
+ hr = _validateMessageCallback(message);
+ if (FAILED(hr))
+ {
+ _logger->Log(LogLevel::Error, _LS("Failed to validate message: 0x%08x"), hr);
+ doEnqueueMessage = false;
+ }
+
*reinterpret_cast(response.Payload.data()) = hr;
hr = client->Send(response);
if (FAILED(hr))
{
_logger->Log(LogLevel::Error, _LS("Unexpected error when sending data: 0x%08x"), hr);
- continue;
+ doEnqueueMessage = false;
}
hr = client->Shutdown();
if (FAILED(hr))
{
_logger->Log(LogLevel::Warning, _LS("Unexpected error during shutdown: 0x%08x"), hr);
+ // Not fatal, keep processing the message
}
- _clientQueue.Enqueue(message);
+ if (doEnqueueMessage)
+ {
+ _clientQueue.Enqueue(message);
+ }
}
}
diff --git a/src/Profilers/MonitorProfiler/Communication/CommandServer.h b/src/Profilers/MonitorProfiler/Communication/CommandServer.h
index 71ff2b772bf..b94f042543f 100644
--- a/src/Profilers/MonitorProfiler/Communication/CommandServer.h
+++ b/src/Profilers/MonitorProfiler/Communication/CommandServer.h
@@ -19,7 +19,10 @@ class CommandServer final
{
public:
CommandServer(const std::shared_ptr& logger, ICorProfilerInfo12* profilerInfo);
- HRESULT Start(const std::string& path, std::function callback);
+ HRESULT Start(
+ const std::string& path,
+ std::function callback,
+ std::function validateMessageCallback);
void Shutdown();
private:
@@ -29,6 +32,8 @@ class CommandServer final
std::atomic_bool _shutdown;
std::function _callback;
+ std::function _validateMessageCallback;
+
IpcCommServer _server;
BlockingQueue _clientQueue;
@@ -38,4 +43,4 @@ class CommandServer final
std::thread _clientThread;
ComPtr _profilerInfo;
-};
\ No newline at end of file
+};
diff --git a/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.cpp b/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.cpp
index 5c590702649..bd7744c1c01 100644
--- a/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.cpp
+++ b/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.cpp
@@ -3,6 +3,14 @@
#include "MessageCallbackManager.h"
+bool MessageCallbackManager::IsRegistered(unsigned short commandSet)
+{
+ std::lock_guard lookupLock(m_lookupMutex);
+
+ std::function existingCallback;
+ return TryGetCallback(commandSet, existingCallback);
+}
+
bool MessageCallbackManager::TryRegister(unsigned short commandSet, ManagedMessageCallback pCallback)
{
return TryRegister(commandSet, [pCallback](const IpcMessage& message)-> HRESULT
@@ -13,7 +21,8 @@ bool MessageCallbackManager::TryRegister(unsigned short commandSet, ManagedMessa
bool MessageCallbackManager::TryRegister(unsigned short commandSet, std::function callback)
{
- std::lock_guard lock(m_mutex);
+ std::lock_guard dispatchLock(m_dispatchMutex);
+ std::lock_guard lookupLock(m_lookupMutex);
std::function existingCallback;
if (TryGetCallback(commandSet, existingCallback))
@@ -27,7 +36,7 @@ bool MessageCallbackManager::TryRegister(unsigned short commandSet, std::functio
HRESULT MessageCallbackManager::DispatchMessage(const IpcMessage& message)
{
- std::lock_guard lock(m_mutex);
+ std::lock_guard dispatchLock(m_dispatchMutex);
std::function callback;
if (!TryGetCallback(message.CommandSet, callback))
@@ -40,7 +49,8 @@ HRESULT MessageCallbackManager::DispatchMessage(const IpcMessage& message)
void MessageCallbackManager::Unregister(unsigned short commandSet)
{
- std::lock_guard lock(m_mutex);
+ std::lock_guard dispatchLock(m_dispatchMutex);
+ std::lock_guard lookupLock(m_lookupMutex);
m_callbacks.erase(commandSet);
}
diff --git a/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.h b/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.h
index fc7f77cd524..8dc23f3507e 100644
--- a/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.h
+++ b/src/Profilers/MonitorProfiler/Communication/MessageCallbackManager.h
@@ -16,11 +16,18 @@ class MessageCallbackManager
{
public:
HRESULT DispatchMessage(const IpcMessage& message);
+ bool IsRegistered(unsigned short commandSet);
bool TryRegister(unsigned short commandSet, std::function callback);
bool TryRegister(unsigned short commandSet, ManagedMessageCallback pCallback);
void Unregister(unsigned short commandSet);
private:
bool TryGetCallback(unsigned short commandSet, std::function& callback);
std::unordered_map> m_callbacks;
- std::mutex m_mutex;
+ //
+ // Ideally we would use a single std::shared_mutex instead, but we are targeting C++11 without
+ // an easy way to upgrade to C++17 at this time, so we use two separate mutexes instead to
+ // allow for IsRegistered to be used while a DispatchMessage call is in progress.
+ //
+ std::mutex m_dispatchMutex;
+ std::mutex m_lookupMutex;
};
diff --git a/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.cpp b/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.cpp
index 75796528a51..9383d5db211 100644
--- a/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.cpp
+++ b/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.cpp
@@ -247,7 +247,10 @@ HRESULT MainProfiler::InitializeCommandServer()
return E_FAIL;
}
- hr = _commandServer->Start(to_string(socketPath), [this](const IpcMessage& message)-> HRESULT { return this->MessageCallback(message); });
+ hr = _commandServer->Start(
+ to_string(socketPath),
+ [this](const IpcMessage& message)-> HRESULT { return this->MessageCallback(message); },
+ [this](const IpcMessage& message)-> HRESULT { return this->ValidateMessage(message); });
if (FAILED(hr))
{
g_MessageCallbacks.Unregister(static_cast(CommandSet::Profiler));
@@ -263,6 +266,16 @@ HRESULT MainProfiler::MessageCallback(const IpcMessage& message)
return g_MessageCallbacks.DispatchMessage(message);
}
+HRESULT MainProfiler::ValidateMessage(const IpcMessage& message)
+{
+ if (g_MessageCallbacks.IsRegistered(message.CommandSet))
+ {
+ return S_OK;
+ }
+
+ return E_NOT_SUPPORTED;
+}
+
HRESULT MainProfiler::ProfilerCommandSetCallback(const IpcMessage& message)
{
switch (static_cast(message.Command))
diff --git a/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.h b/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.h
index 0f519da2e50..afc656bdd5c 100644
--- a/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.h
+++ b/src/Profilers/MonitorProfiler/MainProfiler/MainProfiler.h
@@ -54,6 +54,7 @@ class MainProfiler final :
HRESULT InitializeEnvironmentHelper();
HRESULT InitializeCommandServer();
HRESULT MessageCallback(const IpcMessage& message);
+ HRESULT ValidateMessage(const IpcMessage& message);
HRESULT ProfilerCommandSetCallback(const IpcMessage& message);
HRESULT ProcessCallstackMessage();
private:
diff --git a/src/inc/macros.h b/src/inc/macros.h
index 89575286a90..ef8aeb7f976 100644
--- a/src/inc/macros.h
+++ b/src/inc/macros.h
@@ -16,8 +16,12 @@
#define E_NOT_SET HRESULT_FROM_WIN32(1168L) //ERROR_NOT_FOUND
#endif
+#ifndef E_NOT_SUPPORTED
+#define E_NOT_SUPPORTED HRESULT_FROM_WIN32(50L) //ERROR_NOT_SUPPORTED
+#endif
+
#ifndef IfOomRetMem
#define START_NO_OOM_THROW_REGION try {
#define END_NO_OOM_THROW_REGION } catch (const std::bad_alloc&) { return E_OUTOFMEMORY; }
#define IfOomRetMem(exp) START_NO_OOM_THROW_REGION; exp; END_NO_OOM_THROW_REGION;
-#endif
\ No newline at end of file
+#endif
From cd0d6adcdfc7ede2108fb7bed1aa82e46fdf91bb Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 23 May 2024 13:32:00 +0000
Subject: [PATCH 03/19] Update dependencies from
https://github.com/dotnet/arcade build 20240520.4 (#6710)
[main] Update dependencies from dotnet/arcade
---
eng/Version.Details.xml | 20 ++++++++++----------
eng/Versions.props | 6 +++---
global.json | 4 ++--
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 9c03ec21b6c..47434892e71 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -22,29 +22,29 @@
https://github.com/dotnet/roslyn-analyzers
b4d9a1334d5189172977ba8fddd00bda70161e4a
-
+
https://github.com/dotnet/arcade
- e6f70c7dd528f05cd28cec2a179d58c22e91d9ac
+ f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/arcade
- e6f70c7dd528f05cd28cec2a179d58c22e91d9ac
+ f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/arcade
- e6f70c7dd528f05cd28cec2a179d58c22e91d9ac
+ f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/arcade
- e6f70c7dd528f05cd28cec2a179d58c22e91d9ac
+ f2b2071632d5d4c46d0f904f2b0d917b1752551b
https://github.com/dotnet/installer
68e8abb1d3e1a240a6e4c29dcd220aae91681676
-
+
https://github.com/dotnet/arcade
- e6f70c7dd528f05cd28cec2a179d58c22e91d9ac
+ f2b2071632d5d4c46d0f904f2b0d917b1752551b
https://github.com/dotnet/diagnostics
diff --git a/eng/Versions.props b/eng/Versions.props
index cc3b16ea277..fc56f9e696e 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -48,9 +48,9 @@
-->
- 8.0.0-beta.24266.3
- 8.0.0-beta.24266.3
- 8.0.0-beta.24266.3
+ 8.0.0-beta.24270.4
+ 8.0.0-beta.24270.4
+ 8.0.0-beta.24270.4
8.0.1
8.0.1-servicing.23580.8
diff --git a/global.json b/global.json
index 57112d4a1e4..243f0e838f0 100644
--- a/global.json
+++ b/global.json
@@ -26,7 +26,7 @@
},
"msbuild-sdks": {
"Microsoft.Build.NoTargets": "3.7.0",
- "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24266.3",
- "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24266.3"
+ "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24270.4",
+ "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24270.4"
}
}
From 60ef6b8dd39937886ee3e3b179e757355e60743b Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 25 May 2024 12:55:17 -0700
Subject: [PATCH 04/19] [main] Update dependencies from dotnet/diagnostics
(#6709)
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 47434892e71..38417b390cc 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- 4a64bc5c0fd3abf17f5b10efbc91051c186db4d3
+ 47a8d48ecc8d320682f1d22fdbbce71528d32a3b
-
+
https://github.com/dotnet/diagnostics
- 4a64bc5c0fd3abf17f5b10efbc91051c186db4d3
+ 47a8d48ecc8d320682f1d22fdbbce71528d32a3b
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/diagnostics
- 4a64bc5c0fd3abf17f5b10efbc91051c186db4d3
+ 47a8d48ecc8d320682f1d22fdbbce71528d32a3b
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index fc56f9e696e..9f48d8d04c9 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24271.1
- 8.0.0-preview.24271.1
+ 8.0.0-preview.24273.1
+ 8.0.0-preview.24273.1
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.527101
+ 1.0.527301
$(MicrosoftNETCoreApp31Version)
From ca21a9a4a401e38faf7206a5f39468b0b688c171 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 27 May 2024 13:17:05 +0000
Subject: [PATCH 05/19] Update dependencies from
https://github.com/dotnet/diagnostics build 20240524.3 (#6721)
[main] Update dependencies from dotnet/diagnostics
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 38417b390cc..b404c00389f 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- 47a8d48ecc8d320682f1d22fdbbce71528d32a3b
+ b50fca6e1024c29a41319df0729724dbe628dc4e
-
+
https://github.com/dotnet/diagnostics
- 47a8d48ecc8d320682f1d22fdbbce71528d32a3b
+ b50fca6e1024c29a41319df0729724dbe628dc4e
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/diagnostics
- 47a8d48ecc8d320682f1d22fdbbce71528d32a3b
+ b50fca6e1024c29a41319df0729724dbe628dc4e
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index 9f48d8d04c9..cd2f2ad02da 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24273.1
- 8.0.0-preview.24273.1
+ 8.0.0-preview.24274.3
+ 8.0.0-preview.24274.3
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.527301
+ 1.0.527403
$(MicrosoftNETCoreApp31Version)
From eadf4194745e3b5337b046e68f7e97deb071a554 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 28 May 2024 13:46:04 +0000
Subject: [PATCH 06/19] Update dependencies from
https://github.com/dotnet/diagnostics build 20240527.1 (#6724)
[main] Update dependencies from dotnet/diagnostics
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index b404c00389f..7c1ee7957d1 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- b50fca6e1024c29a41319df0729724dbe628dc4e
+ 7a3cfdfc6f2988f676ada70037df6b1a207ff55a
-
+
https://github.com/dotnet/diagnostics
- b50fca6e1024c29a41319df0729724dbe628dc4e
+ 7a3cfdfc6f2988f676ada70037df6b1a207ff55a
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/diagnostics
- b50fca6e1024c29a41319df0729724dbe628dc4e
+ 7a3cfdfc6f2988f676ada70037df6b1a207ff55a
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index cd2f2ad02da..9068a4b249b 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24274.3
- 8.0.0-preview.24274.3
+ 8.0.0-preview.24277.1
+ 8.0.0-preview.24277.1
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.527403
+ 1.0.527701
$(MicrosoftNETCoreApp31Version)
From 37959c3867f721b4889abdbf963dff2634f0ac01 Mon Sep 17 00:00:00 2001
From: Justin Anderson
Date: Tue, 28 May 2024 10:21:29 -0700
Subject: [PATCH 07/19] Exclude 7.3 from CG (#6716)
---
eng/pipelines/dotnet-monitor-cg.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/eng/pipelines/dotnet-monitor-cg.yml b/eng/pipelines/dotnet-monitor-cg.yml
index 945a7fce46f..91d6932fe4c 100644
--- a/eng/pipelines/dotnet-monitor-cg.yml
+++ b/eng/pipelines/dotnet-monitor-cg.yml
@@ -5,6 +5,7 @@ schedules:
include:
- shipped/*
exclude:
+ - shipped/7.3
- shipped/7.2
- shipped/7.1
always: true
From 12cc023deaccc29c3e55152812f341be652e1d67 Mon Sep 17 00:00:00 2001
From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com>
Date: Tue, 28 May 2024 11:02:38 -0700
Subject: [PATCH 08/19] Configure request limits via DI (#6730)
---
.../RequestThrottling/RequestLimit.cs | 7 +++++++
.../RequestThrottling/RequestLimitTracker.cs | 16 +++++-----------
.../TestHostHelper.cs | 2 +-
.../Commands/CollectCommandHandler.cs | 2 +-
.../ServiceCollectionExtensions.cs | 17 +++++++++++++++++
5 files changed, 31 insertions(+), 13 deletions(-)
create mode 100644 src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimit.cs
diff --git a/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimit.cs b/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimit.cs
new file mode 100644
index 00000000000..f082ddb429a
--- /dev/null
+++ b/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimit.cs
@@ -0,0 +1,7 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+namespace Microsoft.Diagnostics.Monitoring.WebApi
+{
+ public sealed record RequestLimit(string Key, int Limit);
+}
diff --git a/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimitTracker.cs b/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimitTracker.cs
index 031b4225429..0f2f886ea4d 100644
--- a/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimitTracker.cs
+++ b/src/Microsoft.Diagnostics.Monitoring.WebApi/RequestThrottling/RequestLimitTracker.cs
@@ -27,19 +27,13 @@ private sealed class RequestCount : IDisposable
private readonly ConcurrentDictionary _requestCounts = new();
private readonly ILogger _logger;
- public RequestLimitTracker(ILogger logger)
+ public RequestLimitTracker(ILogger logger, IEnumerable limits)
{
- //CONSIDER Should we have configuration for these?
+ foreach (RequestLimit requestLimit in limits)
+ {
+ _requestLimitTable.Add(requestLimit.Key, requestLimit.Limit);
+ }
- _requestLimitTable.Add(Utilities.ArtifactType_Dump, 1);
- _requestLimitTable.Add(Utilities.ArtifactType_GCDump, 1);
- _requestLimitTable.Add(Utilities.ArtifactType_Logs, 3);
- _requestLimitTable.Add(Utilities.ArtifactType_Trace, 3);
- _requestLimitTable.Add(Utilities.ArtifactType_Metrics, 3);
- _requestLimitTable.Add(Utilities.ArtifactType_Stacks, 1);
- _requestLimitTable.Add(Utilities.ArtifactType_Exceptions, 1);
- _requestLimitTable.Add(Utilities.ArtifactType_Parameters, 1);
- _requestLimitTable.Add(Unlimited, int.MaxValue);
_logger = logger;
}
diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs
index 386ac5add24..02c48fa9433 100644
--- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs
+++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs
@@ -110,7 +110,7 @@ public static IHost CreateHost(
}
services.ConfigureEgress();
- services.AddSingleton();
+ services.ConfigureRequestLimits();
services.ConfigureOperationStore();
services.ConfigureDiagnosticPort(context.Configuration);
diff --git a/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs b/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs
index 799ff74c852..f3282419c73 100644
--- a/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs
+++ b/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs
@@ -119,7 +119,7 @@ private static IHostBuilder Configure(this IHostBuilder builder, StartupAuthenti
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
- services.AddSingleton();
+ services.ConfigureRequestLimits();
services.ConfigureOperationStore();
services.ConfigureExtensions();
services.ConfigureExtensionLocations(settings);
diff --git a/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs b/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs
index 159ad6037e8..606cc93adf3 100644
--- a/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs
+++ b/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs
@@ -41,6 +41,7 @@
using Microsoft.Extensions.Options;
using System;
using System.IO;
+using Utils = Microsoft.Diagnostics.Monitoring.WebApi.Utilities;
namespace Microsoft.Diagnostics.Tools.Monitor
{
@@ -365,6 +366,22 @@ public static IServiceCollection ConfigureHostingStartup(this IServiceCollection
return services;
}
+ public static IServiceCollection ConfigureRequestLimits(this IServiceCollection services)
+ {
+ services.AddSingleton();
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Dump, 1); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_GCDump, 1); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Logs, 3); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Trace, 3); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Metrics, 3); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Stacks, 1); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Exceptions, 1); });
+ services.AddSingleton((_) => { return new RequestLimit(Utils.ArtifactType_Parameters, 1); });
+ services.AddSingleton((_) => { return new RequestLimit(RequestLimitTracker.Unlimited, int.MaxValue); });
+
+ return services;
+ }
+
public static IServiceCollection ConfigureStartupHook(this IServiceCollection services)
{
services.AddScoped();
From 9fbb244f23537368a64eb8454ca5265745a8bfb3 Mon Sep 17 00:00:00 2001
From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com>
Date: Thu, 30 May 2024 09:29:48 -0700
Subject: [PATCH 09/19] Add retries (#6747)
---
.../CollectionRuleDescriptionTests.cs | 418 +++++++++---------
1 file changed, 215 insertions(+), 203 deletions(-)
diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/CollectionRuleDescriptionTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/CollectionRuleDescriptionTests.cs
index de40fd8d471..88702577df1 100644
--- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/CollectionRuleDescriptionTests.cs
+++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/CollectionRuleDescriptionTests.cs
@@ -111,101 +111,107 @@ await ScenarioRunner.SingleTarget(
[InlineData(DiagnosticPortConnectionMode.Listen)]
public async Task CollectionRuleDescription_ActionLimitTest(DiagnosticPortConnectionMode mode)
{
- using TemporaryDirectory tempDirectory = new(_outputHelper);
- string ExpectedFilePath = Path.Combine(tempDirectory.FullName, "file.txt");
- string ExpectedFileContent = Guid.NewGuid().ToString("N");
-
- const int ExpectedActionCountLimit = 1;
-
- Task ruleCompletedTask = null;
-
- await ScenarioRunner.SingleTarget(
- _outputHelper,
- _httpClientFactory,
- mode,
- TestAppScenarios.SpinWait.Name,
- appValidate: async (runner, client) =>
+ await RetryUtilities.RetryAsync(
+ func: async () =>
{
- // Validate detailed description for the NonStartup rule before spinning the CPU
+ using TemporaryDirectory tempDirectory = new(_outputHelper);
+ string ExpectedFilePath = Path.Combine(tempDirectory.FullName, "file.txt");
+ string ExpectedFileContent = Guid.NewGuid().ToString("N");
- CollectionRuleDetailedDescription actualDetailedDescription_Before = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
- CollectionRuleDetailedDescription expectedDetailedDescription_Before = new()
- {
- ActionCountLimit = ExpectedActionCountLimit,
- LifetimeOccurrences = 0,
- SlidingWindowOccurrences = 0,
- State = CollectionRuleState.Running,
- StateReason = Running
- };
- Assert.Equal(expectedDetailedDescription_Before, actualDetailedDescription_Before);
+ const int ExpectedActionCountLimit = 1;
- // Validate brief descriptions for all rules before spinning the CPU
+ Task ruleCompletedTask = null;
- Dictionary actualDescriptions_Before = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
- Dictionary expectedDescriptions_Before = new()
- {
+ await ScenarioRunner.SingleTarget(
+ _outputHelper,
+ _httpClientFactory,
+ mode,
+ TestAppScenarios.SpinWait.Name,
+ appValidate: async (runner, client) =>
{
- NonStartupRuleName, new CollectionRuleDescription()
- {
- State = expectedDetailedDescription_Before.State,
- StateReason = expectedDetailedDescription_Before.StateReason
- }
- }
- };
+ // Validate detailed description for the NonStartup rule before spinning the CPU
- ValidateCollectionRuleDescriptions(expectedDescriptions_Before, actualDescriptions_Before);
+ CollectionRuleDetailedDescription actualDetailedDescription_Before = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
+ CollectionRuleDetailedDescription expectedDetailedDescription_Before = new()
+ {
+ ActionCountLimit = ExpectedActionCountLimit,
+ LifetimeOccurrences = 0,
+ SlidingWindowOccurrences = 0,
+ State = CollectionRuleState.Running,
+ StateReason = Running
+ };
+ Assert.Equal(expectedDetailedDescription_Before, actualDetailedDescription_Before);
+
+ // Validate brief descriptions for all rules before spinning the CPU
+
+ Dictionary actualDescriptions_Before = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
+ Dictionary expectedDescriptions_Before = new()
+ {
+ {
+ NonStartupRuleName, new CollectionRuleDescription()
+ {
+ State = expectedDetailedDescription_Before.State,
+ StateReason = expectedDetailedDescription_Before.StateReason
+ }
+ }
+ };
- await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StartSpin);
+ ValidateCollectionRuleDescriptions(expectedDescriptions_Before, actualDescriptions_Before);
- await ruleCompletedTask;
+ await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StartSpin);
- await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StopSpin);
+ await ruleCompletedTask;
- // Validate detailed description for the NonStartup rule after spinning the CPU
+ await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StopSpin);
- CollectionRuleDetailedDescription actualDetailedDescription_After = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
- CollectionRuleDetailedDescription expectedDetailedDescription_After = new()
- {
- ActionCountLimit = ExpectedActionCountLimit,
- LifetimeOccurrences = 1,
- SlidingWindowOccurrences = 1,
- State = CollectionRuleState.Finished,
- StateReason = FinishedActionCount
- };
- Assert.Equal(expectedDetailedDescription_After, actualDetailedDescription_After);
-
- // Validate brief descriptions for all rules after spinning the CPU
+ // Validate detailed description for the NonStartup rule after spinning the CPU
- Dictionary actualDescriptions_After = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
- Dictionary expectedDescriptions_After = new()
- {
- {
- NonStartupRuleName, new CollectionRuleDescription()
+ CollectionRuleDetailedDescription actualDetailedDescription_After = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
+ CollectionRuleDetailedDescription expectedDetailedDescription_After = new()
{
- State = expectedDetailedDescription_After.State,
- StateReason = expectedDetailedDescription_After.StateReason
- }
- }
- };
-
- ValidateCollectionRuleDescriptions(expectedDescriptions_After, actualDescriptions_After);
- },
- configureTool: runner =>
- {
- runner.ConfigurationFromEnvironment.CreateCollectionRule(NonStartupRuleName)
- .SetEventCounterTrigger(options =>
+ ActionCountLimit = ExpectedActionCountLimit,
+ LifetimeOccurrences = 1,
+ SlidingWindowOccurrences = 1,
+ State = CollectionRuleState.Finished,
+ StateReason = FinishedActionCount
+ };
+ Assert.Equal(expectedDetailedDescription_After, actualDetailedDescription_After);
+
+ // Validate brief descriptions for all rules after spinning the CPU
+
+ Dictionary actualDescriptions_After = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
+ Dictionary expectedDescriptions_After = new()
+ {
+ {
+ NonStartupRuleName, new CollectionRuleDescription()
+ {
+ State = expectedDetailedDescription_After.State,
+ StateReason = expectedDetailedDescription_After.StateReason
+ }
+ }
+ };
+
+ ValidateCollectionRuleDescriptions(expectedDescriptions_After, actualDescriptions_After);
+ },
+ configureTool: runner =>
{
- // cpu usage greater than 1% for 1 second
- options.ProviderName = "System.Runtime";
- options.CounterName = "cpu-usage";
- options.GreaterThan = 1;
- options.SlidingWindowDuration = TimeSpan.FromSeconds(1);
- })
- .AddExecuteActionAppAction(Assembly.GetExecutingAssembly(), "TextFileOutput", ExpectedFilePath, ExpectedFileContent)
- .SetActionLimits(count: ExpectedActionCountLimit);
-
- ruleCompletedTask = runner.WaitForCollectionRuleCompleteAsync(NonStartupRuleName);
- });
+ runner.ConfigurationFromEnvironment.CreateCollectionRule(NonStartupRuleName)
+ .SetEventCounterTrigger(options =>
+ {
+ // cpu usage greater than 1% for 1 second
+ options.ProviderName = "System.Runtime";
+ options.CounterName = "cpu-usage";
+ options.GreaterThan = 1;
+ options.SlidingWindowDuration = TimeSpan.FromSeconds(1);
+ })
+ .AddExecuteActionAppAction(Assembly.GetExecutingAssembly(), "TextFileOutput", ExpectedFilePath, ExpectedFileContent)
+ .SetActionLimits(count: ExpectedActionCountLimit);
+
+ ruleCompletedTask = runner.WaitForCollectionRuleCompleteAsync(NonStartupRuleName);
+ });
+ },
+ shouldRetry: (Exception ex) => ex is TaskCanceledException,
+ outputHelper: _outputHelper);
}
///
@@ -215,135 +221,141 @@ await ScenarioRunner.SingleTarget(
[InlineData(DiagnosticPortConnectionMode.Listen)]
public async Task CollectionRuleDescription_MultipleRulesTest(DiagnosticPortConnectionMode mode)
{
- using TemporaryDirectory tempDirectory = new(_outputHelper);
- string ExpectedFilePath = Path.Combine(tempDirectory.FullName, "file.txt");
- string ExpectedFileContent = Guid.NewGuid().ToString("N");
-
- const int ExpectedActionCountLimit = 1;
-
- Task ruleCompletedTask_Startup = null;
- Task ruleCompletedTask_NonStartup = null;
-
- await ScenarioRunner.SingleTarget(
- _outputHelper,
- _httpClientFactory,
- mode,
- TestAppScenarios.SpinWait.Name,
- appValidate: async (runner, client) =>
+ await RetryUtilities.RetryAsync(
+ func: async () =>
{
- await ruleCompletedTask_Startup;
+ using TemporaryDirectory tempDirectory = new(_outputHelper);
+ string ExpectedFilePath = Path.Combine(tempDirectory.FullName, "file.txt");
+ string ExpectedFileContent = Guid.NewGuid().ToString("N");
- // Validate detailed description for the NonStartup rule
- CollectionRuleDetailedDescription actualDetailedDescription_NonStartup = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
- CollectionRuleDetailedDescription expectedDetailedDescription_NonStartup = new()
- {
- ActionCountLimit = ExpectedActionCountLimit,
- LifetimeOccurrences = 0,
- SlidingWindowOccurrences = 0,
- State = CollectionRuleState.Running,
- StateReason = Running
- };
- Assert.Equal(expectedDetailedDescription_NonStartup, actualDetailedDescription_NonStartup);
+ const int ExpectedActionCountLimit = 1;
- // Validate detailed description for the Startup rule
+ Task ruleCompletedTask_Startup = null;
+ Task ruleCompletedTask_NonStartup = null;
- CollectionRuleDetailedDescription actualDetailedDescription_Startup = await client.GetCollectionRuleDetailedDescriptionAsync(StartupRuleName, await runner.ProcessIdTask, null, null);
- CollectionRuleDetailedDescription expectedDetailedDescription_Startup = new()
- {
- ActionCountLimit = CollectionRuleLimitsOptionsDefaults.ActionCount,
- LifetimeOccurrences = 1,
- SlidingWindowOccurrences = 1,
- State = CollectionRuleState.Finished,
- StateReason = FinishedStartup
- };
- Assert.Equal(expectedDetailedDescription_Startup, actualDetailedDescription_Startup);
-
- // Validate brief descriptions for all rules
-
- Dictionary actualDescriptions = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
- Dictionary expectedDescriptions = new()
- {
- {
- NonStartupRuleName, new CollectionRuleDescription()
+ await ScenarioRunner.SingleTarget(
+ _outputHelper,
+ _httpClientFactory,
+ mode,
+ TestAppScenarios.SpinWait.Name,
+ appValidate: async (runner, client) =>
{
- State = expectedDetailedDescription_NonStartup.State,
- StateReason = expectedDetailedDescription_NonStartup.StateReason
- }
- },
- {
- StartupRuleName, new CollectionRuleDescription()
+ await ruleCompletedTask_Startup;
+
+ // Validate detailed description for the NonStartup rule
+ CollectionRuleDetailedDescription actualDetailedDescription_NonStartup = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
+ CollectionRuleDetailedDescription expectedDetailedDescription_NonStartup = new()
+ {
+ ActionCountLimit = ExpectedActionCountLimit,
+ LifetimeOccurrences = 0,
+ SlidingWindowOccurrences = 0,
+ State = CollectionRuleState.Running,
+ StateReason = Running
+ };
+ Assert.Equal(expectedDetailedDescription_NonStartup, actualDetailedDescription_NonStartup);
+
+ // Validate detailed description for the Startup rule
+
+ CollectionRuleDetailedDescription actualDetailedDescription_Startup = await client.GetCollectionRuleDetailedDescriptionAsync(StartupRuleName, await runner.ProcessIdTask, null, null);
+ CollectionRuleDetailedDescription expectedDetailedDescription_Startup = new()
+ {
+ ActionCountLimit = CollectionRuleLimitsOptionsDefaults.ActionCount,
+ LifetimeOccurrences = 1,
+ SlidingWindowOccurrences = 1,
+ State = CollectionRuleState.Finished,
+ StateReason = FinishedStartup
+ };
+ Assert.Equal(expectedDetailedDescription_Startup, actualDetailedDescription_Startup);
+
+ // Validate brief descriptions for all rules
+
+ Dictionary actualDescriptions = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
+ Dictionary expectedDescriptions = new()
+ {
+ {
+ NonStartupRuleName, new CollectionRuleDescription()
+ {
+ State = expectedDetailedDescription_NonStartup.State,
+ StateReason = expectedDetailedDescription_NonStartup.StateReason
+ }
+ },
+ {
+ StartupRuleName, new CollectionRuleDescription()
+ {
+ State = expectedDetailedDescription_Startup.State,
+ StateReason = expectedDetailedDescription_Startup.StateReason
+ }
+ }
+ };
+
+ ValidateCollectionRuleDescriptions(expectedDescriptions, actualDescriptions);
+
+ await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StartSpin);
+
+ await ruleCompletedTask_NonStartup;
+
+ await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StopSpin);
+
+ // Validate detailed description for the NonStartup rule after spinning the CPU
+
+ CollectionRuleDetailedDescription actualDetailedDescription_After = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
+ CollectionRuleDetailedDescription expectedDetailedDescription_After = new()
+ {
+ ActionCountLimit = ExpectedActionCountLimit,
+ LifetimeOccurrences = 1,
+ SlidingWindowOccurrences = 1,
+ State = CollectionRuleState.Finished,
+ StateReason = FinishedActionCount
+ };
+ Assert.Equal(expectedDetailedDescription_After, actualDetailedDescription_After);
+
+ // Validate brief descriptions for all rules after spinning the CPU
+
+ Dictionary actualDescriptions_After = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
+ Dictionary expectedDescriptions_After = new()
+ {
+ {
+ NonStartupRuleName, new CollectionRuleDescription()
+ {
+ State = expectedDetailedDescription_After.State,
+ StateReason = expectedDetailedDescription_After.StateReason
+ }
+ },
+ {
+ StartupRuleName, new CollectionRuleDescription()
+ {
+ State = expectedDetailedDescription_Startup.State,
+ StateReason = expectedDetailedDescription_Startup.StateReason
+ }
+ }
+ };
+
+ ValidateCollectionRuleDescriptions(expectedDescriptions_After, actualDescriptions_After);
+
+ },
+ configureTool: runner =>
{
- State = expectedDetailedDescription_Startup.State,
- StateReason = expectedDetailedDescription_Startup.StateReason
- }
- }
- };
-
- ValidateCollectionRuleDescriptions(expectedDescriptions, actualDescriptions);
-
- await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StartSpin);
-
- await ruleCompletedTask_NonStartup;
-
- await runner.SendCommandAsync(TestAppScenarios.SpinWait.Commands.StopSpin);
-
- // Validate detailed description for the NonStartup rule after spinning the CPU
-
- CollectionRuleDetailedDescription actualDetailedDescription_After = await client.GetCollectionRuleDetailedDescriptionAsync(NonStartupRuleName, await runner.ProcessIdTask, null, null);
- CollectionRuleDetailedDescription expectedDetailedDescription_After = new()
- {
- ActionCountLimit = ExpectedActionCountLimit,
- LifetimeOccurrences = 1,
- SlidingWindowOccurrences = 1,
- State = CollectionRuleState.Finished,
- StateReason = FinishedActionCount
- };
- Assert.Equal(expectedDetailedDescription_After, actualDetailedDescription_After);
-
- // Validate brief descriptions for all rules after spinning the CPU
-
- Dictionary actualDescriptions_After = await client.GetCollectionRulesDescriptionAsync(await runner.ProcessIdTask, null, null);
- Dictionary expectedDescriptions_After = new()
- {
- {
- NonStartupRuleName, new CollectionRuleDescription()
- {
- State = expectedDetailedDescription_After.State,
- StateReason = expectedDetailedDescription_After.StateReason
- }
- },
- {
- StartupRuleName, new CollectionRuleDescription()
- {
- State = expectedDetailedDescription_Startup.State,
- StateReason = expectedDetailedDescription_Startup.StateReason
- }
- }
- };
-
- ValidateCollectionRuleDescriptions(expectedDescriptions_After, actualDescriptions_After);
-
+ runner.ConfigurationFromEnvironment.CreateCollectionRule(NonStartupRuleName)
+ .SetEventCounterTrigger(options =>
+ {
+ // cpu usage greater than 1% for 1 second
+ options.ProviderName = "System.Runtime";
+ options.CounterName = "cpu-usage";
+ options.GreaterThan = 1;
+ options.SlidingWindowDuration = TimeSpan.FromSeconds(1);
+ })
+ .AddExecuteActionAppAction(Assembly.GetExecutingAssembly(), "TextFileOutput", ExpectedFilePath, ExpectedFileContent)
+ .SetActionLimits(count: ExpectedActionCountLimit);
+
+ runner.ConfigurationFromEnvironment.CreateCollectionRule(StartupRuleName)
+ .SetStartupTrigger();
+
+ ruleCompletedTask_Startup = runner.WaitForCollectionRuleCompleteAsync(StartupRuleName);
+ ruleCompletedTask_NonStartup = runner.WaitForCollectionRuleCompleteAsync(NonStartupRuleName);
+ });
},
- configureTool: runner =>
- {
- runner.ConfigurationFromEnvironment.CreateCollectionRule(NonStartupRuleName)
- .SetEventCounterTrigger(options =>
- {
- // cpu usage greater than 1% for 1 second
- options.ProviderName = "System.Runtime";
- options.CounterName = "cpu-usage";
- options.GreaterThan = 1;
- options.SlidingWindowDuration = TimeSpan.FromSeconds(1);
- })
- .AddExecuteActionAppAction(Assembly.GetExecutingAssembly(), "TextFileOutput", ExpectedFilePath, ExpectedFileContent)
- .SetActionLimits(count: ExpectedActionCountLimit);
-
- runner.ConfigurationFromEnvironment.CreateCollectionRule(StartupRuleName)
- .SetStartupTrigger();
-
- ruleCompletedTask_Startup = runner.WaitForCollectionRuleCompleteAsync(StartupRuleName);
- ruleCompletedTask_NonStartup = runner.WaitForCollectionRuleCompleteAsync(NonStartupRuleName);
- });
+ shouldRetry: (Exception ex) => ex is TaskCanceledException,
+ outputHelper: _outputHelper);
}
private static void ValidateCollectionRuleDescriptions(Dictionary expectedCollectionRuleDescriptions, Dictionary actualCollectionRuleDescriptions)
From 47c7ad91e99e04f6aba9373434665fb253755d5f Mon Sep 17 00:00:00 2001
From: Claudiu Guiman
Date: Thu, 30 May 2024 15:57:47 -0400
Subject: [PATCH 10/19] ParameterCapturingTests: Increase capture duration and
set limit to 1 (#6752)
---
.../HttpApi/ApiClient.cs | 2 +-
.../ParameterCapturingTests.cs | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs
index b4b84dc2b1a..c6907b2fbda 100644
--- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs
+++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs
@@ -628,7 +628,7 @@ public async Task CaptureParametersAsync(int processId, TimeS
}
bool isInfinite = (duration == Timeout.InfiniteTimeSpan);
- string uri = FormattableString.Invariant($"/parameters?pid={processId}&durationSeconds={(isInfinite ? -1 : duration.Seconds)}");
+ string uri = FormattableString.Invariant($"/parameters?pid={processId}&durationSeconds={(isInfinite ? -1 : duration.TotalSeconds)}");
if (!string.IsNullOrEmpty(egressProvider))
{
uri += FormattableString.Invariant($"&egressProvider={egressProvider}");
diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/ParameterCapturingTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/ParameterCapturingTests.cs
index 0d91d93bc7c..ee16752cbf5 100644
--- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/ParameterCapturingTests.cs
+++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/ParameterCapturingTests.cs
@@ -21,9 +21,8 @@
using System.Runtime.InteropServices;
using System.Text.Json;
using System.Text.Json.Serialization;
-#if NET7_0_OR_GREATER
using System.Threading;
-#endif
+
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
@@ -114,7 +113,7 @@ await RunTestCaseCore(TestAppScenarios.ParameterCapturing.SubScenarios.AspNetApp
CaptureParametersConfiguration config = GetValidConfiguration();
- ValidationProblemDetailsException validationException = await Assert.ThrowsAsync(() => apiClient.CaptureParametersAsync(processId, TimeSpan.FromSeconds(1), config));
+ ValidationProblemDetailsException validationException = await Assert.ThrowsAsync(() => apiClient.CaptureParametersAsync(processId, Timeout.InfiniteTimeSpan, config));
Assert.Equal(HttpStatusCode.BadRequest, validationException.StatusCode);
await appRunner.SendCommandAsync(TestAppScenarios.ParameterCapturing.Commands.Continue);
@@ -131,7 +130,7 @@ await RunTestCaseCore(TestAppScenarios.ParameterCapturing.SubScenarios.AspNetApp
CaptureParametersConfiguration config = GetValidConfiguration();
MethodDescription expectedCapturedMethod = config.Methods[0];
- OperationResponse response = await apiClient.CaptureParametersAsync(processId, TimeSpan.FromSeconds(2), config, format, FileProviderName);
+ OperationResponse response = await apiClient.CaptureParametersAsync(processId, CommonTestTimeouts.GeneralTimeout, config, format, FileProviderName);
Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
OperationStatusResponse _ = await apiClient.WaitForOperationToStart(response.OperationUri);
@@ -194,7 +193,8 @@ private static CaptureParametersConfiguration GetValidConfiguration()
TypeName = "SampleMethods.StaticTestMethodSignatures",
MethodName = "NoArgs"
}
- }
+ },
+ CaptureLimit = 1
};
}
From 0f2717449942c57f4e48c3434b9a101995927629 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 31 May 2024 14:53:06 -0700
Subject: [PATCH 11/19] [main] Bump Microsoft.NETCore.DotNetHost in
/eng/dependabot/net6.0 (#6742)
Bumps [Microsoft.NETCore.DotNetHost](https://github.com/dotnet/runtime) from 6.0.30 to 6.0.31.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.30...v6.0.31)
---
updated-dependencies:
- dependency-name: Microsoft.NETCore.DotNetHost
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
eng/dependabot/net6.0/Versions.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/dependabot/net6.0/Versions.props b/eng/dependabot/net6.0/Versions.props
index c916bdfb645..eba3a04dc1e 100644
--- a/eng/dependabot/net6.0/Versions.props
+++ b/eng/dependabot/net6.0/Versions.props
@@ -10,6 +10,6 @@
6.0.0
- 6.0.30
+ 6.0.31
From 703a84ae3eb928204b15ad7a461a61decf652463 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 31 May 2024 14:54:26 -0700
Subject: [PATCH 12/19] [main] Bump Microsoft.NETCore.DotNetHost in
/eng/dependabot/net7.0 (#6739)
Bumps [Microsoft.NETCore.DotNetHost](https://github.com/dotnet/runtime) from 7.0.19 to 7.0.20.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v7.0.19...v7.0.20)
---
updated-dependencies:
- dependency-name: Microsoft.NETCore.DotNetHost
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
eng/dependabot/net7.0/Versions.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/dependabot/net7.0/Versions.props b/eng/dependabot/net7.0/Versions.props
index e63b1a1fd98..c83d32c994f 100644
--- a/eng/dependabot/net7.0/Versions.props
+++ b/eng/dependabot/net7.0/Versions.props
@@ -10,6 +10,6 @@
7.0.0
- 7.0.19
+ 7.0.20
From 3c31273c42196ec0813b7b5b947ab8e1bd1801ac Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 31 May 2024 14:54:43 -0700
Subject: [PATCH 13/19] [main] Bump Microsoft.Identity.Web (#6738)
Bumps the identity-dependencies group in /eng/dependabot/independent with 1 update: [Microsoft.Identity.Web](https://github.com/AzureAD/microsoft-identity-web).
Updates `Microsoft.Identity.Web` from 2.18.2 to 2.19.0
- [Release notes](https://github.com/AzureAD/microsoft-identity-web/releases)
- [Changelog](https://github.com/AzureAD/microsoft-identity-web/blob/master/changelog.md)
- [Commits](https://github.com/AzureAD/microsoft-identity-web/compare/2.18.2...2.19.0)
---
updated-dependencies:
- dependency-name: Microsoft.Identity.Web
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: identity-dependencies
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
eng/dependabot/independent/Versions.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/dependabot/independent/Versions.props b/eng/dependabot/independent/Versions.props
index f18b1e139bc..c40341aaac7 100644
--- a/eng/dependabot/independent/Versions.props
+++ b/eng/dependabot/independent/Versions.props
@@ -5,7 +5,7 @@
1.11.3
12.20.0
12.18.0
- 2.18.2
+ 2.19.0
1.6.14
4.3.2
5.0.0
From e5430b50243a17eac4294849e46eddec9e9340d3 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Sun, 2 Jun 2024 13:19:48 +0000
Subject: [PATCH 14/19] [main] Update dependencies from dotnet/diagnostics
(#6759)
[main] Update dependencies from dotnet/diagnostics
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 7c1ee7957d1..cfe3dfddb87 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- 7a3cfdfc6f2988f676ada70037df6b1a207ff55a
+ 481674f73f11e8096f48820ae133d98c88d64a14
-
+
https://github.com/dotnet/diagnostics
- 7a3cfdfc6f2988f676ada70037df6b1a207ff55a
+ 481674f73f11e8096f48820ae133d98c88d64a14
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/diagnostics
- 7a3cfdfc6f2988f676ada70037df6b1a207ff55a
+ 481674f73f11e8096f48820ae133d98c88d64a14
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index 9068a4b249b..4adea73195f 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24277.1
- 8.0.0-preview.24277.1
+ 8.0.0-preview.24281.1
+ 8.0.0-preview.24281.1
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.527701
+ 1.0.528101
$(MicrosoftNETCoreApp31Version)
From 6a13c8f695673e0e63ccce3266deeb9b4e4e9506 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Jun 2024 11:32:26 -0700
Subject: [PATCH 15/19] [main] Bump Microsoft.NETCore.DotNetHost in
/eng/dependabot/net8.0 (#6736)
Bumps [Microsoft.NETCore.DotNetHost](https://github.com/dotnet/runtime) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.5...v8.0.6)
---
updated-dependencies:
- dependency-name: Microsoft.NETCore.DotNetHost
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wiktor Kopec
---
eng/dependabot/net8.0/Versions.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/dependabot/net8.0/Versions.props b/eng/dependabot/net8.0/Versions.props
index 0dd5910c8a9..81bacd28d4c 100644
--- a/eng/dependabot/net8.0/Versions.props
+++ b/eng/dependabot/net8.0/Versions.props
@@ -10,6 +10,6 @@
8.0.0
- 8.0.5
+ 8.0.6
From 4fb831d4f433edc90e7945c092ebb9483c38dee5 Mon Sep 17 00:00:00 2001
From: AntonPalyok
Date: Tue, 4 Jun 2024 01:09:10 +0200
Subject: [PATCH 16/19] Add documentation note about in-process features are
only supported in Listen mode. (#6755)
* Add documentation note about in-process features are only supported in Listen mode.
* Update 'github-action-markdown-link-check' to latest version to fix markdown link validation issues
* Fix wrong links in documentation/api/definitions.md
* Ignore 'hub.docker.com' in markdown link checker because it returns Status Code 405 on GET requests.
---
.github/linters/check-markdown-links-config.json | 3 +++
.github/workflows/check-markdown-links.yml | 2 +-
documentation/api/definitions.md | 4 ++--
documentation/api/stacks.md | 4 ++--
.../configuration/in-process-features-configuration.md | 4 ++++
5 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/.github/linters/check-markdown-links-config.json b/.github/linters/check-markdown-links-config.json
index 49b07a50043..ef2b131a34c 100644
--- a/.github/linters/check-markdown-links-config.json
+++ b/.github/linters/check-markdown-links-config.json
@@ -11,6 +11,9 @@
},
{
"pattern": "^https://www\\.dotnetfoundation.org/.*"
+ },
+ {
+ "pattern": "^https://hub\\.docker\\.com/.*"
}
],
"aliveStatusCodes": [
diff --git a/.github/workflows/check-markdown-links.yml b/.github/workflows/check-markdown-links.yml
index eecf9969116..cd7e01d655b 100644
--- a/.github/workflows/check-markdown-links.yml
+++ b/.github/workflows/check-markdown-links.yml
@@ -19,7 +19,7 @@ jobs:
persist-credentials: false
- name: Check markdown links
- uses: gaurav-nelson/github-action-markdown-link-check@5c5dfc0ac2e225883c0e5f03a85311ec2830d368
+ uses: gaurav-nelson/github-action-markdown-link-check@7d83e59a57f3c201c76eed3d33dff64ec4452d27
with:
config-file: .github/linters/check-markdown-links-config.json
use-quiet-mode: 'yes'
diff --git a/documentation/api/definitions.md b/documentation/api/definitions.md
index b7b55aa2571..dff57e617e4 100644
--- a/documentation/api/definitions.md
+++ b/documentation/api/definitions.md
@@ -54,7 +54,7 @@ Object describing the basic state of a collection rule for the executing instanc
| Name | Type | Description |
|---|---|---|
-| State | [CollectionRuleState](#collectionrulestate-63) | Indicates what state the collection rule is in for the current process. |
+| State | [CollectionRuleState](#collectionrulestate) | Indicates what state the collection rule is in for the current process. |
| StateReason | string | Human-readable explanation for the current state of the collection rule. |
## CollectionRuleDetailedDescription
@@ -65,7 +65,7 @@ Object describing the detailed state of a collection rule for the executing inst
| Name | Type | Description |
|---|---|---|
-| State | [CollectionRuleState](#collectionrulestate-63) | Indicates what state the collection rule is in for the current process. |
+| State | [CollectionRuleState](#collectionrulestate) | Indicates what state the collection rule is in for the current process. |
| StateReason | string | Human-readable explanation for the current state of the collection rule. |
| LifetimeOccurrences | int | The number of times the trigger has executed for a process in its lifetime. |
| SlidingWindowOccurrences | int | The number of times the trigger has executed within the current sliding window. |
diff --git a/documentation/api/stacks.md b/documentation/api/stacks.md
index 7efd903dd52..4147e7f57a4 100644
--- a/documentation/api/stacks.md
+++ b/documentation/api/stacks.md
@@ -62,7 +62,7 @@ Allowed schemes:
### Sample Request
```http
-GET /stack?pid=21632 HTTP/1.1
+GET /stacks?pid=21632 HTTP/1.1
Host: localhost:52323
Authorization: Bearer fffffffffffffffffffffffffffffffffffffffffff=
Accept: application/json
@@ -100,7 +100,7 @@ Location: localhost:52323/operations/67f07e40-5cca-4709-9062-26302c484f18
### Sample Request
```http
-GET /stack?pid=21632 HTTP/1.1
+GET /stacks?pid=21632 HTTP/1.1
Host: localhost:52323
Authorization: Bearer fffffffffffffffffffffffffffffffffffffffffff=
Accept: text/plain
diff --git a/documentation/configuration/in-process-features-configuration.md b/documentation/configuration/in-process-features-configuration.md
index 26d7578259d..b8503cc1215 100644
--- a/documentation/configuration/in-process-features-configuration.md
+++ b/documentation/configuration/in-process-features-configuration.md
@@ -4,6 +4,10 @@
First Available: 8.0 Preview 7
+> [!NOTE]
+> In-process features are only supported when running dotnet-monitor in `Listen` mode.
+> See [Diagnostic Port](./diagnostic-port-configuration.md) configuration for details.
+
Some features of `dotnet monitor` require loading libraries into target applications. These libraries ship with `dotnet monitor` and are provisioned to be available to target applications using the `DefaultSharedPath` option in the [storage configuration](./storage-configuration.md) section. The following features require these in-process libraries to be used:
- [Call Stacks](#call-stacks)
From 70f3537e8459a2de835b4d4a55e713e7ee55b711 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 4 Jun 2024 23:04:08 +0000
Subject: [PATCH 17/19] Update dependencies from
https://github.com/dotnet/diagnostics build 20240603.1 (#6763)
[main] Update dependencies from dotnet/diagnostics
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index cfe3dfddb87..f3d6efaf33a 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- 481674f73f11e8096f48820ae133d98c88d64a14
+ 05f88f687a02aa865384beda97a8910d4d57b17b
-
+
https://github.com/dotnet/diagnostics
- 481674f73f11e8096f48820ae133d98c88d64a14
+ 05f88f687a02aa865384beda97a8910d4d57b17b
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/diagnostics
- 481674f73f11e8096f48820ae133d98c88d64a14
+ 05f88f687a02aa865384beda97a8910d4d57b17b
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index 4adea73195f..92465ac9dd9 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24281.1
- 8.0.0-preview.24281.1
+ 8.0.0-preview.24303.1
+ 8.0.0-preview.24303.1
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.528101
+ 1.0.530301
$(MicrosoftNETCoreApp31Version)
From 3bcbcafdbc5462cdc9af6b50afd32ef3d5f0e304 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 4 Jun 2024 16:13:50 -0700
Subject: [PATCH 18/19] Bump dawidd6/action-download-artifact from 3.1.4 to 5
(#6767)
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3.1.4 to 5.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/09f2f74827fd3a8607589e5ad7f9398816f540fe...deb3bb83256a78589fef6a7b942e5f2573ad7c13)
---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/submit-linter-suggestions.yml | 2 +-
.github/workflows/submit-to-do-issue.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/submit-linter-suggestions.yml b/.github/workflows/submit-linter-suggestions.yml
index cc98a9b091b..688a9abfe04 100644
--- a/.github/workflows/submit-linter-suggestions.yml
+++ b/.github/workflows/submit-linter-suggestions.yml
@@ -49,7 +49,7 @@ jobs:
# The default artifact download action doesn't support cross-workflow
# artifacts, so use a 3rd party one.
- name: 'Download linting results'
- uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe
+ uses: dawidd6/action-download-artifact@deb3bb83256a78589fef6a7b942e5f2573ad7c13
with:
workflow: ${{env.workflow_name}}
run_id: ${{github.event.workflow_run.id }}
diff --git a/.github/workflows/submit-to-do-issue.yml b/.github/workflows/submit-to-do-issue.yml
index 518ac4a701e..1a77ad39cf0 100644
--- a/.github/workflows/submit-to-do-issue.yml
+++ b/.github/workflows/submit-to-do-issue.yml
@@ -35,7 +35,7 @@ jobs:
# The default artifact download action doesn't support cross-workflow
# artifacts, so use a 3rd party one.
- name: 'Download linting results'
- uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe
+ uses: dawidd6/action-download-artifact@deb3bb83256a78589fef6a7b942e5f2573ad7c13
with:
workflow: ${{env.workflow_name}}
run_id: ${{github.event.workflow_run.id }}
From f653b640dd9ed817812ce6f1bf3927f016d40aed Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 5 Jun 2024 13:06:18 +0000
Subject: [PATCH 19/19] Update dependencies from
https://github.com/dotnet/diagnostics build 20240604.1 (#6773)
[main] Update dependencies from dotnet/diagnostics
---
eng/Version.Details.xml | 12 ++++++------
eng/Versions.props | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index f3d6efaf33a..8df5c729251 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -4,13 +4,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
8e941eb42f819adb116b881195158b3887a70a1c
-
+
https://github.com/dotnet/diagnostics
- 05f88f687a02aa865384beda97a8910d4d57b17b
+ 1c854868f031c1fb9cb2e175baaab120a42b42fd
-
+
https://github.com/dotnet/diagnostics
- 05f88f687a02aa865384beda97a8910d4d57b17b
+ 1c854868f031c1fb9cb2e175baaab120a42b42fd
https://github.com/dotnet/command-line-api
@@ -46,9 +46,9 @@
https://github.com/dotnet/arcade
f2b2071632d5d4c46d0f904f2b0d917b1752551b
-
+
https://github.com/dotnet/diagnostics
- 05f88f687a02aa865384beda97a8910d4d57b17b
+ 1c854868f031c1fb9cb2e175baaab120a42b42fd
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
diff --git a/eng/Versions.props b/eng/Versions.props
index 92465ac9dd9..4645d782daa 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -57,8 +57,8 @@
2.0.0-beta4.24209.3
- 8.0.0-preview.24303.1
- 8.0.0-preview.24303.1
+ 8.0.0-preview.24304.1
+ 8.0.0-preview.24304.1
8.0.103-servicing.24114.15
@@ -67,7 +67,7 @@
8.0.1
8.0.1-servicing.23580.1
- 1.0.530301
+ 1.0.530401
$(MicrosoftNETCoreApp31Version)