You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a gRPC server returns error with own custom messages in status details, evans doesn't display some messages even with --enrich option.
If the message type is defined in dependent proto files from RPC definitions, is it shown. Message types which cannot reach from RPC definitions are not shown.
The rpc returns error with the custom sample.Extension, sample.ErrorCode and google.protobuf.Timestamp as status details.
evans shows the sample.Extension and Timestamp only in the details section.
Expected behavior
The non-dependent message is also shown in the details section:
Hi @terashi58.
We submitted a PR that resolves this problem, could you try this one if you have time?
$ go install github.com/ktr0731/evans@7917121
FYI: its PR doesn't contain some required tests yet because it requires changing the testing architecture. So, even if the behavior looks good, it will be a little while before the next release can be made.
Thank you @ktr0731!
It looks working well. I built the binary and confirmed that all messages in status details are shown with reflection in both the sample case and my real environment.
Describe the bug
When a gRPC server returns error with own custom messages in status details, evans doesn't display some messages even with --enrich option.
If the message type is defined in dependent proto files from RPC definitions, is it shown. Message types which cannot reach from RPC definitions are not shown.
It happens only when using reflection.
I've confirmed the dangling message is provided as details using another tool https://github.com/fullstorydev/grpcurl.
To reproduce
Here is a Dockerfile to reproduce it: https://github.com/terashi58/grpc-details-test/tree/v0.0.3
Summary of the sample codes:
Here is the gRPC definition:
And another independent proto file for common error code:
And the RPC implementation:
The rpc returns error with the custom
sample.Extension
,sample.ErrorCode
andgoogle.protobuf.Timestamp
as status details.evans shows the
sample.Extension
andTimestamp
only in the details section.Expected behavior
The non-dependent message is also shown in the details section:
Environment
protoc
version: 3.20.0protoc
plugin version (if you are using):Additional context
You can run the sample server in the docker image by docker run -p 50051:50051 --rm grpc-details-test ./bin/server and test from a local evans.
This is an additional bug report branched from #529.
The text was updated successfully, but these errors were encountered: