Skip to content

Gracefully handle span mapping failing #78520

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

Merged
merged 1 commit into from
May 13, 2025

Conversation

ryzngard
Copy link
Contributor

@ryzngard ryzngard commented May 8, 2025

No description provided.

@ryzngard ryzngard requested a review from a team as a code owner May 8, 2025 23:26
@ghost ghost added Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead labels May 8, 2025
{
// Span mapping didn't succeed. Razor can log telemetry but this still needs to be handled so return all defaults
// to indicate mapping didn't succeed.
return roslynSpans.ToImmutableArray();
Copy link
Member

Choose a reason for hiding this comment

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

ok. so it's ok that you're returning an array that is the same length as 'spans', but is full of 'default' values?

Copy link
Member

Choose a reason for hiding this comment

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

would it make more sense to just do the same logic as before, just have the caller decide 'the lengths are different, so i'll ignore the result'?

basically, do we need this here? (i don't have a good sense for the best layer for this sort of thing). alternative question, should _razorMappingService.MapSpansAsync fail if it can't return the same number of spans as given?

Copy link
Member

Choose a reason for hiding this comment

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

(i'm ignorant of this area. just trying to understand it better).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm okay with the caller handling that too. In general we don't want this happening at all and I'm going to add some telemetry on the razor side for this

Copy link
Member

Choose a reason for hiding this comment

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

think if we're going to handle it, we can handle it here to avoid updating a bunch of different callers (and I don't think the callers would do anything different). But I am also OK with this continuing to throw if we expect to fix it. It isn't taking down the server here, and we are in an error case, so an exception seems appropriate.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

dotnet/vscode-csharp#8271 draft for now because I have to head out but I'll test later tonight that the exception goes to the right place and update the razor code to catch

{
// Span mapping didn't succeed. Razor can log telemetry but this still needs to be handled so return all defaults
// to indicate mapping didn't succeed.
return roslynSpans.ToImmutableArray();
Copy link
Member

Choose a reason for hiding this comment

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

think if we're going to handle it, we can handle it here to avoid updating a bunch of different callers (and I don't think the callers would do anything different). But I am also OK with this continuing to throw if we expect to fix it. It isn't taking down the server here, and we are in an error case, so an exception seems appropriate.

@dibarbet
Copy link
Member

/azp run roslyn-integration-CI

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@ryzngard ryzngard merged commit 2892b8b into dotnet:main May 13, 2025
26 checks passed
@ryzngard ryzngard deleted the span_mapping_failure branch May 13, 2025 01:56
@dotnet-policy-service dotnet-policy-service bot added this to the Next milestone May 13, 2025
@ryzngard
Copy link
Contributor Author

/backport to release/vscode

Copy link
Contributor

Started backporting to release/vscode: https://github.com/dotnet/roslyn/actions/runs/14989957792

ryzngard added a commit that referenced this pull request May 13, 2025
Backport of #78520 to release/vscode

/cc @ryzngard

## Customer Impact

## Regression

- [ ] Yes
- [ ] No

[If yes, specify when the regression was introduced. Provide the PR or
commit if known.]

## Testing

[How was the fix verified? How was the issue missed previously? What
tests were added?]

## Risk

[High/Medium/Low. Justify the indication by mentioning how risks were
measured and addressed.]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants