No address resolver configured for the scheme 'grpc'
iancullinane opened this issue · 2 comments
Describe the bug
When attempting gRPC
to a local VM running at address 172.17.8.101:8080
I get the above error and stacktrace (in the context below).
To Reproduce
Steps to reproduce the behavior:
- Have a VM (in my case vagrant with flatcar OS, which also has an envoy container for service mesh)
- Attempt to hit IP address with
gRPC
mode, everything else the same.
Expected behavior
A successful gRPC request.
From the stacktrace below
{
"kreyaVersion": "1.13.0",
"releaseChannel": "stable",
"osDescription": "Darwin 21.6.0 Darwin Kernel Version 21.6.0: Thu Jun 8 23:57:12 PDT 2023; root:xnu-8020.240.18.701.6~1/RELEASE_X86_64",
"osVersion": "Unix 12.6.7",
"osArch": "X64",
"processArch": "X64",
"runtimeIdentifier": "osx-x64",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)"
}
Environment (if possible, copy the information from the error dialog or the About menu):
From the stacktrace below.
{
"kreyaVersion": "1.13.0",
"releaseChannel": "stable",
"osDescription": "Darwin 21.6.0 Darwin Kernel Version 21.6.0: Thu Jun 8 23:57:12 PDT 2023; root:xnu-8020.240.18.701.6~1/RELEASE_X86_64",
"osVersion": "Unix 12.6.7",
"osArch": "X64",
"processArch": "X64",
"runtimeIdentifier": "osx-x64",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)"
}
VM is flatcar running on vagrant:
==> vagrant: A new version of Vagrant is available: 2.4.1 (installed version: 2.3.4)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
Last login: Mon Feb 5 22:20:13 UTC 2024 from 10.0.2.2 on pts/2
Flatcar Container Linux by Kinvolk stable (2512.2.0)
Additional context
System.InvalidOperationException: No address resolver configured for the scheme 'grpc'.
at Grpc.Net.Client.GrpcChannel.GetResolverFactory(GrpcChannelOptions options)
at Grpc.Net.Client.GrpcChannel..ctor(Uri address, GrpcChannelOptions channelOptions)
at Grpc.Net.Client.GrpcChannel.ForAddress(Uri address, GrpcChannelOptions channelOptions)
at Kreya.Grpc.Core.Utils.GrpcChannelBuilder.NewChannel(IGrpcChannelOptions options, IOperationAuthState authState, Nullable`1 clientCertId, Boolean infiniteTimeout)
at Kreya.Grpc.Core.Invoker.GrpcInvokerFactory.GetInstance(MethodDescriptor methodDescriptor, GrpcInvokerOptions options, GrpcInvokerTracer tracer)
at Kreya.Grpc.Core.Invoker.GrpcInvokerFactory.NewInvoker(IOperationWithDetail`2 operation, GrpcInvokerTracer tracer, CancellationToken cancellationToken)
at Kreya.Core.Api.Invoker.OperationInvokerFactoryAdapter`4.NewInvoker(IOperationWithDetail operationContent, InvokerEventTracer invokerEventTracer, CancellationToken cancellationToken)
at Kreya.Core.Invoker.InvokerService.InitializeInvokerAdapter(OperationInvoker invoker, IOperationWithDetail operation, EventTracer eventTracer, CancellationToken cancellationToken)
at Kreya.Core.Invoker.InvokerScope.<>c__DisplayClass30_0.<<Initialize>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Kreya.Core.Invoker.InvokerScope.Initialize()
at Kreya.UI.Invoker.InvokerUiService.<>c.<<Start>b__7_0>d.MoveNext()
--- End of stack trace from previous location ---
at Kreya.UI.Invoker.InvokerUiService.WithInvokerScope(Guid invokerId, Func`2 func)
at Kreya.UI.Invoker.InvokerUiService.WithInvokerScope(Guid invokerId, Func`2 func)
at SpiderEye.Bridge.ApiMethod.InvokeAsync(Object instance, Object parameter)
at SpiderEye.Bridge.WebviewBridge.InvokeWithDependencyInjection(IDependencyInjectionApiMethod apiMethod, Object parameters)
at SpiderEye.Bridge.WebviewBridge.InvokeWithDependencyInjection(IDependencyInjectionApiMethod apiMethod, Object parameters)
at SpiderEye.Bridge.WebviewBridge.ResolveCall(String id, String parameters)
I suppose you try to call the service with grpc://172.17.8.101:8080
as the endpoint?
Try to use http://172.17.8.101:8080
or https://172.17.8.101:8080
, as Kreya expects either http
or https
as the scheme.
Kreya 1.13.1 now shows a notification, indicating that either http
or https
must be chosen as the scheme