fullstorydev / grpcui

An interactive web UI for gRPC, along the lines of postman
MIT License
5.24k stars 388 forks source link

run grpcui and got "Symbol not found: grpc.health.v1.Health" #321

Closed skasi7 closed 6 months ago

skasi7 commented 6 months ago

Hi,

This is an issue that follows #82 but I didn't see an option to reopen it.

I run grpcui 1.4.1 release on Win64 and it failed:

> grpcui.exe -plaintext 0.0.0.0:50050
Failed to compute set of methods to expose: Symbol not found: grpc.health.v1.Health

The same happens with grpcurl 1.9.1 on win64:

> grpcurl.exe -plaintext 0.0.0.0:50050 list
my_custom_service
grpc.health.v1.Health
grpc.reflection.v1.ServerReflection
grpc.reflection.v1alpha.ServerReflection

That follows with:

> grpcurl.exe -plaintext 0.0.0.0:50050 list grpc.health.v1.Health
Failed to list methods for service "grpc.health.v1.Health": Symbol not found: grpc.health.v1.Health

The service is written in c++ and it's working just disabling the Health Check Service.

To give more evidences, I added some traces to the protoreflect plugin and the output are:

> go run cmd\grpcurl\grpcurl.go -plaintext 0.0.0.0:50050 list grpc.health.v1.Health
Request file_containing_symbol:"grpc.health.v1.Health"
Response <nil>
Failed to resolve symbol "grpc.health.v1.Health": Symbol not found: grpc.health.v1.Health
exit status 1

Note the Response <nil>.

As far as I investigated, the issue seems to be related to the src/proto/grpc/health/v1/health.* filesnot being compiled in any dll (but maybe I'm wrong). In my mind, those files should be compiled in a dll as the reflection protos are inside the reflection dll.

Thank you for your help.

skasi7 commented 6 months ago

After some more thought, It seems the issue is with grpc. The best approach I can think of it's to compile the health proto myself so I can provide the descriptors. I close this.