-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
gRPC: fix server reflection #8945
Conversation
Benchmark beginning. Status page: https://github.orijtech.com/benchmark/status?commit=cb219124c14feea9155d596e7854608bf7e650f7 |
Benchmark beginning. Status page: https://github.orijtech.com/benchmark/status?commit=9b2800f8613e04ebc403961bc8c6352a0a9e9ae4 |
…lection' into fdymylja/issue-8927-fix-grpc-reflection
Codecov Report
@@ Coverage Diff @@
## master #8945 +/- ##
==========================================
- Coverage 59.27% 58.87% -0.41%
==========================================
Files 571 574 +3
Lines 31827 32114 +287
==========================================
+ Hits 18867 18906 +39
- Misses 10757 10993 +236
- Partials 2203 2215 +12
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, this is pretty cool, thanks @fdymylja.
I tested:
grpcurl -plaintext localhost:9090 list
grpcurl -plaintext localhost:9090 describe cosmos.authz.v1beta1.Query
grpcurl -plaintext localhost:9090 describe cosmos.authz.v1beta1.Query.Authorization
they all work.
Before approving, can you update docs/run-node/interact-node.md
and add a changelog?
I also added the backport label, as I see this as a nice bugfix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TOP! Thanks @fdymylja
…lection' into fdymylja/issue-8927-fix-grpc-reflection
A changelog would be nice! After that feel free to put automerge on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left few cosmetic comments. Thanks!
// but are imported by other files in a different way. | ||
// NOTE(fdymylja): This fix should not be needed and should be addressed in some CI. | ||
// Currently every cosmos-sdk proto file is importing gogo.proto as gogoproto/gogo.proto, | ||
// but gogo.proto registers itself as gogo.proto, same goes for cosmos.proto. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know why this happens? Maybe we should fix it in github.com/regen-network/cosmos-proto
?
@aaronc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean - let's create an issue if there is a bug we can easily fix in cosmos-proto
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's not a bug per se, it's a shortcoming when it comes to combo together reflection and proto imports. protofiles register themselve in the registry with a path, but then are imported with another path. this makes reflection fail, because it cannot find certain files.
this would mean either forking gogoproto and changing how we feed the file to protoc, or changing the third_party structure in the sdk, edit how every file imports gogoproto.
and im not sure if this is a breaking change, descriptor wise it is.
probably this should be a blob of work which should be reorganized during the transition to protov2
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
@fdymylja yes, we are experiencing many issues with gh actions currently. AFAIK @marbar3778 is looking into what's wrong there... Meanwhile, it'd be great if you could address @robert-zaremba's comments (some are minor, another would just take to open a new issue), then I'd be super happy to merge this manually 👍 |
I'll open a follow up PR regarding proto file registrations. But as I've written in the comment I think it should end up in a bigger batch of work during the transition to protov2. |
Thanks for creating the issue @fdymylja . |
@Mergifyio backport release/v0.42.x |
* add: gogoreflection * fix: server reflection * fix: make tests resolve imports in a transitive way * chore: cleanup getMessageType * chore: lint * add: extensions reflection * chore: update interact-node.md docs * chore: update CHANGELOG.md * Update server/grpc/gogoreflection/fix_registration.go Co-authored-by: Robert Zaremba <robert@zaremba.ch> Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com> Co-authored-by: Alessio Treglia <alessio@tendermint.com> Co-authored-by: Robert Zaremba <robert@zaremba.ch> (cherry picked from commit ac48ffe) # Conflicts: # CHANGELOG.md # go.mod # go.sum
Command
|
Description
closes: #8927
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
docs/
) or specification (x/<module>/spec/
)godoc
comments.Unreleased
section inCHANGELOG.md
Files changed
in the Github PR explorerCodecov Report
in the comment section below once CI passes