Skip to content
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

Resource server returned an error while navigating around the dashboard #1930

Closed
davidfowl opened this issue Jan 28, 2024 · 2 comments · Fixed by #1975
Closed

Resource server returned an error while navigating around the dashboard #1930

davidfowl opened this issue Jan 28, 2024 · 2 comments · Fixed by #1975
Assignees

Comments

@davidfowl
Copy link
Member

fail: Grpc.AspNetCore.Server.ServerCallHandler[6]
      Error when executing service method 'WatchResources'.
      System.ArgumentNullException: Value cannot be null. (Parameter 'value')
         at Google.Protobuf.ProtoPreconditions.CheckNotNull[T](T value, String name)
         at Aspire.V1.Resource.set_State(String value) in /_/artifacts/obj/Aspire.Hosting/Release/net8.0/Dashboard/proto/ResourceService.cs:line 2574
         at Aspire.V1.Resource.FromSnapshot(ResourceSnapshot snapshot) in /_/src/Aspire.Hosting/Dashboard/proto/Partials.cs:line 13
         at Aspire.Hosting.Dashboard.DashboardService.<>c__DisplayClass6_0.<<WatchResources>g__WatchResourcesInternal|0>d.MoveNext() in /_/src/Aspire.Hosting/Dashboard/DashboardService.cs:line 88
      --- End of stack trace from previous location ---
         at Aspire.Hosting.Dashboard.DashboardService.<>c__DisplayClass6_0.<<WatchResources>g__WatchResourcesInternal|0>d.MoveNext() in /_/src/Aspire.Hosting/Dashboard/DashboardService.cs:line 78
      --- End of stack trace from previous location ---
         at Aspire.Hosting.Dashboard.DashboardService.WatchResources(WatchResourcesRequest request, IServerStreamWriter`1 responseStream, ServerCallContext context) in /_/src/Aspire.Hosting/Dashboard/DashboardService.cs:line 58
         at Grpc.Shared.Server.ServerStreamingServerMethodInvoker`3.Invoke(HttpContext httpContext, ServerCallContext serverCallContext, TRequest request, IServerStreamWriter`1 streamWriter)
         at Grpc.Shared.Server.ServerStreamingServerMethodInvoker`3.Invoke(HttpContext httpContext, ServerCallContext serverCallContext, TRequest request, IServerStreamWriter`1 streamWriter)
         at Grpc.AspNetCore.Server.Internal.CallHandlers.ServerStreamingServerCallHandler`3.HandleCallAsyncCore(HttpContext httpContext, HttpContextServerCallContext serverCallContext)
         at Grpc.AspNetCore.Server.Internal.CallHandlers.ServerCallHandlerBase`3.<HandleCallAsync>g__AwaitHandleCall|8_0(HttpContextServerCallContext serverCallContext, Method`2 method, Task handleCall)
@davidfowl davidfowl added the area-app-model Issues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication label Jan 28, 2024
@davidfowl davidfowl added this to the preview 3 (Feb) milestone Jan 28, 2024
@kvenkatrajan kvenkatrajan added area-dashboard and removed area-app-model Issues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication labels Jan 29, 2024
@kvenkatrajan
Copy link
Member

@drewnoakes can you have a look please?

@drewnoakes
Copy link
Member

This stems from the Protobuf codegen we use not producing null-annotated code.

In this instance, the ResourceSnapshot.State value is null, which is not allowed in the .proto we have.

Options to fix this:

  1. Make the field optional (a breaking change, so not a great option)
  2. Pass a default value when null
  • Empty string
  • "Unknown" (would this need to be localised?)

I'll submit a PR with the empty string for now.

drewnoakes added a commit to drewnoakes/aspire that referenced this issue Jan 30, 2024
Ideally we'd make the field nullable on the proto definition, but that's a breaking change at this point. So instead, we pass an empty string.

Other options are discussed in dotnet#1930.
github-actions bot pushed a commit that referenced this issue Jan 30, 2024
Ideally we'd make the field nullable on the proto definition, but that's a breaking change at this point. So instead, we pass an empty string.

Other options are discussed in #1930.
davidfowl pushed a commit that referenced this issue Jan 30, 2024
Ideally we'd make the field nullable on the proto definition, but that's a breaking change at this point. So instead, we pass an empty string.

Other options are discussed in #1930.

Co-authored-by: Drew Noakes <[email protected]>
davidfowl pushed a commit that referenced this issue Jan 30, 2024
Ideally we'd make the field nullable on the proto definition, but that's a breaking change at this point. So instead, we pass an empty string.

Other options are discussed in #1930.
joperezr added a commit that referenced this issue Feb 1, 2024
* Change default port for dashboard applicationUrl (#1853)

Windows allows systems to exclude specific port ranges, after which attempts to bind them will fail. The ranges will vary from machine to machine, and can be viewed with the command `netsh interface ipv4 show excludedportrange protocol=tcp`.

We're seeing users hitting issues with port 63824. While the excluded ranges will vary from machine to machine, it seems like these higher numbers are more likely to be excluded.

This change moves the ports lower, which should help alleviate this issue.

* Add details column to trace view, remove status badge and put counter badge on resource name (#1788)

* add details column to trace detail

* Update xlfs, style button

* remove error badge

* Put unread error counter on name

* update trace detail details column to absolute width

* Remove unused resx strings, re-add titles for resource name

* Make error counter badge text white in dark theme

* fixed variable name

---------

Co-authored-by: Adam Ratzman <[email protected]>

* Fix horizontal overflow in metrics popup (#1838)

* Remove unused "known property" getter methods (#1856)

This code is no longer used, so remove it.

* Update dashboard README (#1854)

* Fix trace detail page's gap between trace ticks (#1861)

* Fix SQL server resource version (#1870)

* Add Pomelo.EntityFrameworkCore.MySql component (#1161)

* Add Pomelo.EntityFrameworkCore.MySql component.

* Add Pomelo.EntityFrameworkCore.MySql tests.

* Update XML documentation.
* Update XML documentation to current conventions.
* Add documentation for Pomelo metrics.

* Use configuration schema generator.

* Allow ServerVersion setting to be optional.

* Remove (now optional) ServerVersion setting from test.

* Remove MySqlConnector logging categories from Pomelo section.

* Add Microsoft.Extensions.Configuration.Binder.

* Add basic MySQL Aspire.Hosting tests.

These were modeled on AddPostgresTests and AddRedisTests.

* Add Pomelo EFCore integration tests.

* Incorporate project change from dff1467.

* PR feedback

- Add log categories to ConfigurationSchema
- Check the "API" boxes for the MySql components in the Progress doc
- Issue a query in the functional test. Follow the same pattern as Oracle
- Set the ServerVersion explicitly in the functional test, so the connection can be retried when the MySql server isn't running.

---------

Co-authored-by: Eric Erhardt <[email protected]>

* Fix TryAddWillNotAddTheSameLifecycleHook test. (#1862)

* Use the right health check properties in ServiceBus README. (#1876)

Fix #1715

* Trace detail page - customize peer icons based on span attributes (#1865)

* Update SqlServerBuilderExtensions.cs (#1883)

Follow up to #1870

* Fix Storage Queue and Cosmos EF READMEs (#1884)

* Fix Storage Queue README

The ConnectionStrings setting had the wrong name, so it doesn't work with what is in the code section above it.

Fix #1679

* Fix CosmosDB README

The extension method takes 2 strings: connection name and database name.

Fix #873

* remove link in name column (#1886)

Co-authored-by: Adam Ratzman <[email protected]>

* Orleans: enable distributed tracing by default (#1858)

* add failedtostart error icon to state (#1887)

* add failedtostart error icon to state

* add starting icon

---------

Co-authored-by: Adam Ratzman <[email protected]>

* Fix grid layout issue (#1889)

* Update dependencies from https://github.com/microsoft/usvc-apiserver build 0.1.49+5 (#1890)

Microsoft.DeveloperControlPlane.darwin-amd64 , Microsoft.DeveloperControlPlane.darwin-arm64 , Microsoft.DeveloperControlPlane.linux-amd64 , Microsoft.DeveloperControlPlane.linux-arm64 , Microsoft.DeveloperControlPlane.windows-386 , Microsoft.DeveloperControlPlane.windows-amd64 , Microsoft.DeveloperControlPlane.windows-arm64
 From Version 0.1.48 -> To Version 0.1.49

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Fix inconsistent trace detail spacing (#1863)

* Fix inconsistent trace detail spacing

* Clean up

* Playground app for SQL Server resources (uses EF). (#1895)

* End to end SQL playground.

* Branding changes for preview 4 (#1892)

* Fix dashboard not working with two applicationUrls specified. (#1901)

* Fix dashboard not working with two applicationUrls specified.

* PR feedback. Defensive code.

* Remove unnecessary code from AppHost in Orleans playground  (#1904)

* remove unnecessary code from Orleans AppHost

* format comment in Orleans AppHost

* Added a mongo playground project (#1921)

* Consistent resource type summaries (#1772)

* Removed static web assets from aspire hosting (#1923)

- We're no longer embedding the dashboard so this shouldn't be required.

* Transform outgoing address to try to find a resource match (#1932)

* Improve environment variable debugging in the app model (#1746)

* Move shared code to shared directory (#1751)

* Fixed build from shared code change (#1937)

* Allow collapsing operations in the trace view (#1323)

Co-authored-by: James Newton-King <[email protected]>

* Update Extensions to preview 1 versions (#1891)

* Update dependencies from https://github.com/dotnet/arcade build 20240125.5 (#1947)

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.24060.4 -> To Version 8.0.0-beta.24075.5

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update dependencies from https://github.com/dotnet/extensions build 20240126.7 (#1954)

Microsoft.Extensions.Http.Resilience
 From Version 9.0.0-alpha.1.24076.5 -> To Version 9.0.0-preview.1.24076.7

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Fix dotnet watch. (#1933)

* Fix dotnet watch.

* Fix precondition in DcpHostService (#1943)

* Fix precondition in DcpHostService

Two lines are changed here, though it's the second (in `StopAsync`) that has a functional change.

The first guard clause allows a null publisher, or a "dcp" publisher.

The second clause would allow any non-null publisher, which looks like a bug to me. Specifically, the first half of the || excludes "dcp", then the second half allows it back in. This means that there's no point checking for "dcp" in the code as written.

My interpretation of this code is that both clauses are intended to be the same, and this commit brings them in line with one another.

* Deduplicate condition

* Fix histogram chart calculation (#1968)

Co-authored-by: Drew Noakes <[email protected]>

* Fix exception when app host has no ASPNETCORE_URLS (#1970)

If an app host project's launch profile doesn't specify a `launchUrl` or `applicationUrl` then the running app host won't have a `ASPNETCORE_URLS` environment variable. We want to pass this variable's value to the dashboard process, and currently if it's missing we throw.

The dashboard executable has a fallback value when the `ASPNETCORE_URLS` variable is not present (of `http://localhost:18888`), so it's perfectly happy to run without this variable.

This change causes the app host to fall back to that same default value for the dashboard's `ASPNETCORE_URLS` variable. While we could pass no value at all, and have the dashboard choose the default, it's more helpful to the user if we log the dashboard URL. This allows the user to find the dashboard, as the IDE will not be launching it automatically when in this state.

* Revert state column badge changes (#1955)

* revert state column badge changes

* Slightly darken error in dark theme

* Remove spurious VS-added itemgroups

* Auto-close empty element

---------

Co-authored-by: Adam Ratzman <[email protected]>

* Update OpenTelemetry packages and use built-in metric methods (#1948)

* Update OpenTelemetry packages

- Update all the OpenTelemetry packages to their latest versions.
- Use built-in methods to add .NET metrics.
- Add suppression for new AoT warning on `AddSqlClientInstrumentation()`.

* Resolve review feedback

Mark as not AoT compatible due to dependency on OpenTelemetry.Instrumentation.SqlClient, which itself is not AoT compatible.

* Prevent ANE when resource state is null (#1975)

Ideally we'd make the field nullable on the proto definition, but that's a breaking change at this point. So instead, we pass an empty string.

Other options are discussed in #1930.

* Remove PublishBuildArtifacts (#1990)

This already happens as part of the publish step in the build. Doing this over again (especially to the same container) will overwrite the previous results in some cases, and also unnecessarily duplicate files. It also will cause the wixpacks to get picked up for signing validation.

* Updating some new projects to target net9.0

* Skip Pomelo tests failing due to Pomelo depending on EF 8.0 methods that were removed in 9.0

---------

Co-authored-by: Drew Noakes <[email protected]>
Co-authored-by: Adam Ratzman <[email protected]>
Co-authored-by: Adam Ratzman <[email protected]>
Co-authored-by: James Newton-King <[email protected]>
Co-authored-by: Mitch Denny <[email protected]>
Co-authored-by: Bradley Grainger <[email protected]>
Co-authored-by: Eric Erhardt <[email protected]>
Co-authored-by: David Fowler <[email protected]>
Co-authored-by: Reuben Bond <[email protected]>
Co-authored-by: Tim Mulholland <[email protected]>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Jose Perez Rodriguez <[email protected]>
Co-authored-by: Vincent Hoogendoorn <[email protected]>
Co-authored-by: Stephan Bauer <[email protected]>
Co-authored-by: Martin Costello <[email protected]>
Co-authored-by: Matt Mitchell <[email protected]>
radical pushed a commit to radical/aspire that referenced this issue Feb 2, 2024
Ideally we'd make the field nullable on the proto definition, but that's a breaking change at this point. So instead, we pass an empty string.

Other options are discussed in dotnet#1930.
@github-actions github-actions bot locked and limited conversation to collaborators Apr 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants