-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.NET 9 SDK introduces hang in dotnet format
when run on Azure Pipelines in combination with NB.GV
#44951
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
1 similar comment
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Attempt to workaround dotnet/sdk#44951
Nerdbank.GitVersioning is a build-related nuget package that adds msbuild targets to projects. But I wouldn't expect it to ever hang (it never has before this), nor do I expect it to do anything special in a |
Perhaps strace could show whether it's blocked in a system call on the Linux agent, e.g. trying to write something to a full pipe. I wonder if the MSBuild terminal logger is causing the hang somehow, even though Azure Pipelines should not be detected as an "interactive" terminal session. Could try disabling it with the environment variable. |
Attempt to workaround dotnet/sdk#44951
Thanks for the suggestion, @KalleOlaviNiemitalo. It didn't work though. |
Workaround dotnet/sdk#44951
This workaround has proven effective, but hacky. |
@AArnott thank you for reporting the issue here. I am indeed seeing the same on Windows on in-house build servers with the following info.
It is very easy to reproduce by creating a small csproj that references <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.143"
PrivateAssets="all" Condition="!Exists('packages.config')" />
</ItemGroup>
</Project> with {
"sdk": {
"version": "9.0.100",
"rollForward": "latestPatch",
"allowPrerelease": false
}
} and then defining a pipeline trigger:
- main
pool:
name: Default
jobs:
- job: Build_and_Test
steps:
- checkout: self
clean: true
persistCredentials: true
fetchDepth: 0
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 6.4'
inputs:
versionSpec: 6.4
- task: NuGetAuthenticate@1
displayName: 'NuGet Authenticate'
inputs:
forceReinstallCredentialProvider: true
- task: UseDotNet@2
displayName: 'Use .NET - global.json'
inputs:
useGlobalJson: true
- task: DotNetCoreCLI@2
displayName: 'dotnet --info'
inputs:
command: custom
custom: '--info'
- task: DotNetCoreCLI@2
displayName: 'dotnet format verify-no-changes'
inputs:
command: custom
custom: format
arguments: '--verify-no-changes -v diagnostic' which will then hang with no other output than:
|
Describe the bug
dotnet format --verify-no-changes --no-restore
just hangs with no output when run in this configuration:Working fine with .NET 8 SDK
Hanging (across 2 attempts) with .NET 9 SDK
@nietras reported the same issue with their own repo, who isolated the repro to requiring both .NET 9 SDK and the Nerdbank.GitVersioning package.
In my case, the hang is on a linux build agent. For @nietras I believe it was a Windows agent. Both of us run this tool only on one agent in the pipeline.
To Reproduce
Exceptions (if any)
Further technical details
@nietras also shared the diagnostic output:
`dotnet --info` output
The text was updated successfully, but these errors were encountered: