Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5002b6c
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Dec 9, 2022
0e31743
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Dec 10, 2022
5f3265c
Update dependencies from https://github.com/dotnet/installer build 20…
dotnet-maestro[bot] Dec 12, 2022
8649157
Update dependencies from https://github.com/dotnet/arcade build 20221…
dotnet-maestro[bot] Dec 12, 2022
38396f7
Update dependencies from https://github.com/dotnet/symstore build 202…
dotnet-maestro[bot] Dec 13, 2022
f0bca05
Update tutorial scenario - App is experiencing intermittent exception…
MarioHewardt Dec 14, 2022
e60cf93
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Dec 14, 2022
87475a8
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Dec 15, 2022
f1e33ea
Update dependencies from https://github.com/microsoft/clrmd build 202…
dotnet-maestro[bot] Dec 15, 2022
60cdc98
Change metrics parsing to use InvariantCulture (#3558)
ghord Dec 16, 2022
b1941f2
Update dependencies from https://github.com/microsoft/clrmd build 202…
dotnet-maestro[bot] Dec 16, 2022
87cb178
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Dec 17, 2022
9f173f5
Update dependencies from https://github.com/dotnet/arcade build 20221…
dotnet-maestro[bot] Dec 19, 2022
289be98
Update dependencies from https://github.com/dotnet/symstore build 202…
dotnet-maestro[bot] Dec 20, 2022
56d6c65
Sync eng/native from dotnet/runtime (#3564)
am11 Dec 21, 2022
2ddc648
Update dependencies from https://github.com/microsoft/clrmd build 202…
dotnet-maestro[bot] Dec 22, 2022
0007661
Update dependencies from https://github.com/dotnet/symstore build 202…
dotnet-maestro[bot] Dec 23, 2022
a9f5c10
Update dependencies from https://github.com/dotnet/arcade build 20221…
dotnet-maestro[bot] Dec 26, 2022
942c25d
Update dependencies from https://github.com/dotnet/symstore build 202…
dotnet-maestro[bot] Dec 27, 2022
1d1154f
Update dependencies from https://github.com/dotnet/symstore build 202…
dotnet-maestro[bot] Dec 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions documentation/tutorial/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# .NET Core Diagnostics Overview

With .NET Full running on Windows we have grown accustomed to a plethora of great diagnostics tools ranging from dump generation and manual analysis to more sophisticated collection engines such as DebugDiag. As .NET core is picking up (cross platform) steam what types of diagnostics capabilities are available to us when we need to do production diagnostics? It turns out that a lot of work has been done in this area and specifically .net core 3 promises to bring a wide range of diagnostics capabilities.
With .NET Full running on Windows we have grown accustomed to a plethora of great diagnostics tools ranging from dump generation and manual analysis to more sophisticated collection engines such as DebugDiag. As .NET core is picking up (cross platform) steam what types of diagnostics capabilities are available to us when we need to do production diagnostics? It turns out that a lot of work has been done in this area and specifically .net core 3 promises to bring a wide range of diagnostics capabilities.

To learn more about production diagnostics in .net core 3, we'll be running through a set of diagnostics scenarios using the built in runtime/sdk tools. The walkthroughs are all run on Ubuntu 16.04 and use the latest .net core preview bits.
To learn more about production diagnostics in .net core 3, we'll be running through a set of diagnostics scenarios using the built in runtime/sdk tools. The walkthroughs are all run on Ubuntu 16.04 and use the latest .net core preview bits.

Before we jump in head first, let's take a look at some basic methodologies as it relates to production diagnostics. When an outage occurs in production, typically the first and foremost goal is mitigation. Mitigation typically involves getting the app back up and running as quickly as possible. Common mitigation techniques involve restarting the app or sometimes one or more nodes/servers. While restarting is a quick and effective mitigation technique, root cause of the failure is still expected to be understood and appropriate fix(es) made to avoid future downtime. In order to get to root cause, we need to collect as much diagnostics data as we can prior to executing the mitigation strategy. The diagnostics data collected can then be analyzed postmortem to determine root cause and possible fixes. Each of the scenarios we will explore here will outline what capabilities .net core 3 has in terms of diagnostics data collection and analysis.

Expand Down Expand Up @@ -30,4 +30,4 @@ Please note that you have to be using at least preview 5 for most of the capabil

### [Scenario - App is not responding](hung_app.md)

### Scenario - App is experiencing intermittent exceptions
### [Scenario - App is experiencing intermittent exceptions](intermittent_exceptions.md)
24 changes: 24 additions & 0 deletions documentation/tutorial/intermittent_exceptions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# App is experiencing intermittent exceptions

In this scenario, an ASP.NET application throws intermittent and sporadic exceptions making it challenging to use on demand dump generation tools to capture a dump precisely at the point of the exception being thrown. .NET has the capability to automatically generate dumps when an application exits as a result of an unhandled exception. However, in the case of ASP.NET the ASP.NET runtime catches all exceptions thrown to avoid the application exiting and as such we can't rely on the automatic core dump generation since an exception thrown never becomes unhandled. Fortunately, the Sysinternals ProcDump (v1.4+) for Linux allows you to generate dumps when the application throws any 1st chance exception.
ProcDump for Linux download/installation instructions can be found here - [ProcDump for Linux](https://github.com/Sysinternals/ProcDump-for-Linux)


For example, if we wanted to generate a core dump when an application throws a 1st chance exception, we can use the following:

> ```bash
> sudo procdump -e MyApp
> ```

If we wanted to specify which specific exception to generate a core dump on we can use the -f (filter) switch:

> ```bash
> sudo procdump -e -f System.InvalidOperationException MyApp
> ```

We can comma separate the list of exceptions in the exception filter.


### Performance considerations

ProcDump for Linux implements exception monitoring by using the profiler API. It attaches the profiler to the target process and waits for the exception notifications to arrive and if the filter is satisfied uses the .NET diagnostics pipe to instruct the runtime to generate a dump. Having a profiler attached to a process represents some amount of overhead but unless the application throws a large number of exceptions the overhead should be minimal.
4 changes: 2 additions & 2 deletions eng/Build-Native.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ if /i %__BuildCrossArch% EQU 1 (
set __ExtraCmakeArgs="-DCLR_MANAGED_BINARY_DIR=!__ManagedBinaryDir!" "-DCLR_BUILD_TYPE=%__BuildType%" "-DCLR_CMAKE_TARGET_ARCH=%__BuildArch%" "-DCMAKE_SYSTEM_VERSION=10.0" "-DNUGET_PACKAGES=%NUGET_PACKAGES:\=/%"

pushd "%__CrossCompIntermediatesDir%"
call "%__ProjectDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__CrossCompIntermediatesDir%" %__VSVersion% %__CrossArch% !__ExtraCmakeArgs!
call "%__ProjectDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__CrossCompIntermediatesDir%" %__VSVersion% %__CrossArch% %__BuildOS% !__ExtraCmakeArgs!
@if defined _echo @echo on
popd

Expand Down Expand Up @@ -267,7 +267,7 @@ if %__Build% EQU 1 (
set __ExtraCmakeArgs="-DCMAKE_SYSTEM_VERSION=10.0" "-DCLR_MANAGED_BINARY_DIR=!__ManagedBinaryDir!" "-DCLR_BUILD_TYPE=%__BuildType%" "-DCLR_CMAKE_TARGET_ARCH=%__BuildArch%" "-DNUGET_PACKAGES=%NUGET_PACKAGES:\=/%"

pushd "%__IntermediatesDir%"
call "%__ProjectDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__IntermediatesDir%" %__VSVersion% %__BuildArch% !__ExtraCmakeArgs!
call "%__ProjectDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__IntermediatesDir%" %__VSVersion% %__BuildArch% %__BuildOS% !__ExtraCmakeArgs!
@if defined _echo @echo on
popd

Expand Down
20 changes: 10 additions & 10 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
<Dependencies>
<ProductDependencies>
<Dependency Name="Microsoft.SymbolStore" Version="1.0.360501">
<Dependency Name="Microsoft.SymbolStore" Version="1.0.362701">
<Uri>https://github.com/dotnet/symstore</Uri>
<Sha>9d8944d87cede39ad8035baacdc7cad0f050dc0d</Sha>
<Sha>d647a79287a9b08ad0775293ed9769a8e31fe67c</Sha>
</Dependency>
<Dependency Name="Microsoft.Diagnostics.Runtime" Version="2.2.332302">
<Dependency Name="Microsoft.Diagnostics.Runtime" Version="2.3.362104">
<Uri>https://github.com/microsoft/clrmd</Uri>
<Sha>877b2d049d5ff5c5b4182606e397b6c92de090f6</Sha>
<Sha>323fcc760d7bd5f8ba248c005b27a3ed52592f0b</Sha>
</Dependency>
<Dependency Name="Microsoft.Diagnostics.Runtime.Utilities" Version="2.0.325901">
<Uri>https://github.com/microsoft/clrmd</Uri>
<Sha>a64d9ac11086f28fbd4b2b2337c19be7826fbfa9</Sha>
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.22608.1">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.22616.1">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>17ad400c7b867c675b05aa3143163503bcdf8695</Sha>
<Sha>31f422237eabbd5c89ecbd0f4a6f53e2c495422f</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.22579.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.22623.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>6b3bad6673f3ebe89ebe12ea7c4eff1705b893e6</Sha>
<Sha>27f876d352ee2a1105c0bf1869cad048141acb3a</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="7.0.0-beta.22316.2" Pinned="true">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>ccfe6da198c5f05534863bbb1bff66e830e0c6ab</Sha>
</Dependency>
<Dependency Name="Microsoft.Dotnet.Sdk.Internal" Version="7.0.102-servicing.22601.12">
<Dependency Name="Microsoft.Dotnet.Sdk.Internal" Version="7.0.102-servicing.22609.1">
<Uri>https://github.com/dotnet/installer</Uri>
<Sha>de57a6e8e4d65a03405f6aac5c0384159bd8fa70</Sha>
<Sha>3c4322d8e5f92a3a2a2d51095c2f06bb1c033b88</Sha>
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="7.0.0-rtm.22513.7">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
Expand Down
6 changes: 3 additions & 3 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
</PropertyGroup>
<PropertyGroup>
<!-- Latest symstore version updated by darc -->
<MicrosoftSymbolStoreVersion>1.0.360501</MicrosoftSymbolStoreVersion>
<MicrosoftSymbolStoreVersion>1.0.362701</MicrosoftSymbolStoreVersion>
<!-- Latest shared runtime version updated by darc -->
<VSRedistCommonNetCoreSharedFrameworkx6470Version>7.0.0-rtm.22513.12</VSRedistCommonNetCoreSharedFrameworkx6470Version>
<MicrosoftNETCoreAppRuntimewinx64Version>7.0.0</MicrosoftNETCoreAppRuntimewinx64Version>
<!-- Latest shared aspnetcore version updated by darc -->
<MicrosoftAspNetCoreAppRefInternalVersion>7.0.0-rtm.22513.7</MicrosoftAspNetCoreAppRefInternalVersion>
<MicrosoftAspNetCoreAppRefVersion>7.0.0</MicrosoftAspNetCoreAppRefVersion>
<!-- dotnet/installer: Testing version of the SDK. Needed for the signed & entitled host. -->
<MicrosoftDotnetSdkInternalVersion>7.0.102-servicing.22601.12</MicrosoftDotnetSdkInternalVersion>
<MicrosoftDotnetSdkInternalVersion>7.0.102-servicing.22609.1</MicrosoftDotnetSdkInternalVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Runtime versions to test -->
Expand All @@ -45,7 +45,7 @@
<MicrosoftWin32PrimitivesVersion>4.3.0</MicrosoftWin32PrimitivesVersion>
<!-- Other libs -->
<MicrosoftBclAsyncInterfacesVersion>1.1.0</MicrosoftBclAsyncInterfacesVersion>
<MicrosoftDiagnosticsRuntimeVersion>2.2.332302</MicrosoftDiagnosticsRuntimeVersion>
<MicrosoftDiagnosticsRuntimeVersion>2.3.362104</MicrosoftDiagnosticsRuntimeVersion>
<MicrosoftDiaSymReaderNativePackageVersion>16.9.0-beta1.21055.5</MicrosoftDiaSymReaderNativePackageVersion>
<MicrosoftDiagnosticsTracingTraceEventVersion>2.0.64</MicrosoftDiagnosticsTracingTraceEventVersion>
<!-- Use pinned version to avoid picking up latest (which doesn't support netcoreapp3.1) during source-build -->
Expand Down
4 changes: 4 additions & 0 deletions eng/common/BuildConfiguration/build-configuration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"RetryCountLimit": 1,
"RetryByAnyError": false
}
35 changes: 0 additions & 35 deletions eng/common/cross/arm/tizen-build-rootfs.sh

This file was deleted.

170 changes: 0 additions & 170 deletions eng/common/cross/arm/tizen-fetch.sh

This file was deleted.

Loading