Skip to content

50x slower build with .net 6.0.403 compared to 6.0.402 #66475

Closed

Description

Describe the bug

With the new path release of .net 6, our build times increased significantly.
A dotnet publish that takes under one minute with .net 6.0.402 now takes about 50 minutes with .net 6.0.403

We see this behaviour in our self-hosted agents (running Ubuntu) but I can also reproduce this locally on Mac M1.

image

with the pipeline step:
      - script: dotnet publish --force -o bin
        workingDirectory: EndToEndTests
        displayName: Copy artifacts

To Reproduce

Unfortunately this does not seem to reproduce on small example projects. But I am happy to run the CLI or the Azure pipeline with added diagnostic if that helps.

Further technical details

Pipeline log with timestamp:

2022-11-15T09:33:58.3747979Z   project1 -> /agent/_work/2/s/Backend/p1/project1/bin/Debug/net6.0/project1.dll
2022-11-15T09:33:58.6882283Z   project2 -> /agent/_work/2/s/Backend/p2/project2/bin/Debug/net6.0/project2.dll
2022-11-15T10:23:29.7324711Z   project3 -> /agent/_work/2/s/Backend/p3/project3/bin/Debug/net6.0/project3.dll
2022-11-15T10:23:29.7734805Z   project4 -> /agent/_work/2/s/Backend/p4/project4/bin/Debug/net6.0/project4.dll

So it seems to be one project that takes long (out of 90 or so) but it is not always the same project.

Locally, I ran dotnet build and this is what I got:

➜  ATS2 git:(dev) ✗ time (dotnet build) > /dev/null
( dotnet build; ) > /dev/null  6.99s user 3.15s system 102% cpu 9.854 total
➜  ATS2 git:(dev) ✗ dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.402
 Commit:    6862418796

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  12.6
 OS Platform: Darwin
 RID:         osx.12-arm64
 Base Path:   /usr/local/share/dotnet/sdk/6.0.402/

Host:
  Version:      7.0.0
  Architecture: arm64
  Commit:       d099f075e4

.NET SDKs installed:
  6.0.402 [/usr/local/share/dotnet/sdk]
  6.0.403 [/usr/local/share/dotnet/sdk]
  7.0.100 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  x64   [/usr/local/share/dotnet/x64]
    registered at [/etc/dotnet/install_location_x64]

Environment variables:
  Not set

global.json file:
  /Users/Q447843/01_Repos/ATS2/global.json

And with 6.0.403:

➜  ATS2 git:(dev) ✗ time (dotnet build) > /dev/null
( dotnet build; ) > /dev/null  19.56s user 6.65s system 1% cpu 41:05.88 total
➜  ATS2 git:(dev) ✗ dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.403
 Commit:    2bc18bf292

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  12.6
 OS Platform: Darwin
 RID:         osx.12-arm64
 Base Path:   /usr/local/share/dotnet/sdk/6.0.403/

Host:
  Version:      7.0.0
  Architecture: arm64
  Commit:       d099f075e4

.NET SDKs installed:
  6.0.402 [/usr/local/share/dotnet/sdk]
  6.0.403 [/usr/local/share/dotnet/sdk]
  7.0.100 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  x64   [/usr/local/share/dotnet/x64]
    registered at [/etc/dotnet/install_location_x64]

Environment variables:
  Not set

global.json file:
  /Users/Q447843/01_Repos/ATS2/global.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions