Skip to content

Conversation

@jamescrosswell
Copy link
Contributor

This is a bit of an experiment to see if we run into similar problems to those we're seeing here when bumping to .net 10. We only see the problems in CI, so thinking the same may be true here as well.

@supervacuus
Copy link
Collaborator

The failing tests certainly point to a relevant change in behavior (though they don't immediately support the issue apparent in your logs). In our test setup, a managed exception caught in managed code causes the process to return a non-zero code.

However, those are most likely related to these errors (or at least I would rectify them first before trying to conclude anything):

from the musl runners

/usr/share/dotnet/sdk/8.0.410/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(166,5): error NETSDK1045: The current .NET SDK does not support targeting .NET 10.0. Either target .NET 8.0 or lower, or use a version of the .NET SDK that supports .NET 10.0. Download the .NET SDK from https://aka.ms/dotnet/download [/__w/sentry-native/sentry-native/tests/fixtures/dotnet_signal/test_dotnet.csproj]

from arm64 ubuntu

/usr/share/dotnet/sdk/9.0.306/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(166,5): error NETSDK1045: The current .NET SDK does not support targeting .NET 10.0. Either target .NET 9.0 or lower, or use a version of the .NET SDK that supports .NET 10.0. Download the .NET SDK from https://aka.ms/dotnet/download [/home/runner/work/sentry-native/sentry-native/tests/fixtures/dotnet_signal/test_dotnet.csproj]

@JoshuaMoelans
Copy link
Member

JoshuaMoelans commented Nov 27, 2025

Manually installing .net 10 on the ubuntu arm runner seems to work. I think we just have to push the changes to the dockerfile to main, triggering a run of the Docker action to also update the .net version for that image.

@JoshuaMoelans
Copy link
Member

With merging #1458 to main, the sentry-native CI is green for .NET 10. @jamescrosswell , feel free to take over again in case you want to add any tests to replicate what you guys are seeing on the dotnet SDK side.

@jamescrosswell
Copy link
Contributor Author

jamescrosswell commented Nov 27, 2025

With merging #1458 to main, the sentry-native CI is green for .NET 10. @jamescrosswell , feel free to take over again in case you want to add any tests to replicate what you guys are seeing on the dotnet SDK side.

Thanks @JoshuaMoelans - much appreciated. I'll keep digging on our side. If it looks like it might be an issue with native, I'll try to add tests back here to confirm/replicate.

btw: one of the other tests for Linux ARM64 is failing below... so not sure if I should be marking this branch ready for review or looking to merge into main/master.

@JoshuaMoelans
Copy link
Member

Looks like that was a flakey run. We can review/merge this if you want, or wait on it potentially being an issue with native & add tests before merging. I'm fine with either :)

@jamescrosswell
Copy link
Contributor Author

Looks like that was a flakey run. We can review/merge this if you want, or wait on it potentially being an issue with native & add tests before merging. I'm fine with either :)

Cool, we may as well merge as .NET 8 is already out of support on mobile platforms.

@jamescrosswell jamescrosswell marked this pull request as ready for review November 30, 2025 22:21
Comment on lines +263 to +264
# install manually until available by default (also for future .NET updates)
- name: Install .NET 10 SDK for ARM64 runners
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: dotnet signal tests will fail on non-ARM64 Linux runners due to missing .NET 10 SDK, as the installation step is ARM64-specific.
Severity: CRITICAL | Confidence: High

🔍 Detailed Analysis

The dotnet signal tests (test_dotnet_signals_inproc, test_aot_signals_inproc) are configured to run on non-ARM64 Linux runners (e.g., ubuntu-24.04, ubuntu-22.04). These tests require the .NET 10 SDK to execute commands like dotnet run and dotnet publish. However, the new CI step responsible for installing .NET 10 is conditionally limited to ARM64 runners. Since .NET 10 is not yet pre-installed on GitHub Actions' non-ARM64 Linux images, these tests will fail with errors such as "dotnet: command not found" or "The .NET SDK cannot be located", breaking the CI pipeline on affected configurations.

💡 Suggested Fix

Modify the .NET 10 SDK installation step's condition to include non-ARM64 Linux runners where the dotnet signal tests are expected to run, or ensure these tests are skipped on configurations without the SDK.

🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: .github/workflows/ci.yml#L263-L264

Potential issue: The `dotnet` signal tests (`test_dotnet_signals_inproc`,
`test_aot_signals_inproc`) are configured to run on non-ARM64 Linux runners (e.g.,
ubuntu-24.04, ubuntu-22.04). These tests require the .NET 10 SDK to execute commands
like `dotnet run` and `dotnet publish`. However, the new CI step responsible for
installing .NET 10 is conditionally limited to `ARM64` runners. Since .NET 10 is not yet
pre-installed on GitHub Actions' non-ARM64 Linux images, these tests will fail with
errors such as "dotnet: command not found" or "The .NET SDK cannot be located", breaking
the CI pipeline on affected configurations.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 4395437

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI is passing on the other platforms, since .NET is already installed. Hence we only need this step specifically for the ARM64-Linux runner.

Copy link
Member

@JoshuaMoelans JoshuaMoelans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@JoshuaMoelans JoshuaMoelans merged commit 2ec8ebd into getsentry:master Dec 1, 2025
69 of 70 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants