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

go: bump google.golang.org/grpc from 1.63.2 to 1.64.0 #2849

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github May 15, 2024

Bumps google.golang.org/grpc from 1.63.2 to 1.64.0.

Release notes

Sourced from google.golang.org/grpc's releases.

Release 1.64.0

API Changes

  • stats: Deprecate InPayload.Data and OutPayload.Data; they were experimental and will be deleted in the next release (#7121)

Behavior Changes

  • codec: Remove handling of environment variable GRPC_GO_ADVERTISE_COMPRESSORS to suppress setting supported compressors in grpc-accept-encoding header. Compressors will always be advertised, as they have been by default for some time (#7203)

New Features

  • resolver/dns: Add SetMinResolutionInterval to set the minimum interval at which DNS re-resolutions may occur (#6962)
  • peer/peer: Implement the fmt.Stringer interface for pretty printing Peer, and
  • metadata/metadata: Implement the fmt.Stringer interface for pretty printing MD (#7137)

Performance Improvements

  • client: Improve RPC performance by reducing work while holding a lock (#7132)

Bug Fixes

  • transport/server: Display the proper timeout value when keepalive pings are not ack'd in time (#7038)
  • channelz: Fix bug that was causing the subchannel's target to be unset (#7189)
  • stats: Fix bug where peer was not set in context when calling stats handler for OutPayload, InPayload, and End (#7096)

Dependencies

  • deps: Remove dependency on deprecated github.com/golang/protobuf module (#7122)

Documentation

  • grpc: Deprecate WithBlock, WithReturnConnectionError, FailOnNonTempDialError which are ignored by NewClient (#7097)
  • grpc: Deprecate Dial and DialContext. These will continue to be supported throughout 1.x, but are deprecated to direct users to NewClient (See #7090 for more information)
  • examples: Add custom lb example (#6691)
Commits
  • fa274d7 Change version to 1.64.0 (#7218)
  • 6b413c8 xds: Surround two Infof calls that use pretty.ToJSON with V(2) checks (...
  • 2dbbcef resolver/dns: Add docstring to SetMinResolutionInterval (#7217)
  • 070d9c7 codes: replace %q to %d in error string when invalid code is an integer (#7188)
  • 5d24ee2 xds: store server config for LRS server in xdsresource.ClusterUpdate (#7191)
  • c76f686 advancedTLS: Rename get root certs related pieces (#7207)
  • f591e3b codec: remove option to suppress setting supported compressors in headers (#7...
  • b4f7947 github: remove dependabot (#7208)
  • 0561c78 client: add user-friendly error message of LB policy update timed out (#7206)
  • 9d9c1fb peer: remove change detector test (#7204)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update Go code labels May 15, 2024
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.63.2...v1.64.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

This commit also replace usage of Dial() and DialContext() by NewClient() as
these functions were deprecated [1, 2].
It also removes deprecated options [3].

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Francis Laniel <flaniel@linux.microsoft.com>
---
[1] https://pkg.go.dev/google.golang.org/grpc@v1.64.0#Dial
[2] https://pkg.go.dev/google.golang.org/grpc@v1.64.0#DialContext
[3] https://pkg.go.dev/google.golang.org/grpc@v1.64.0#WithBlock
@eiffel-fl eiffel-fl force-pushed the dependabot/go_modules/google.golang.org/grpc-1.64.0 branch from 75616de to bbe7564 Compare May 16, 2024 16:16
@eiffel-fl
Copy link
Member

eiffel-fl commented May 16, 2024

I updated the commit to handle the deprecation warnings.
Sadly, I am not sure if I updated everything correctly.
Moreover, despite being deprecated, these functions will not be removed:
grpc/grpc-go#7090 (comment)
So, we can stick with them and silent the linter.
The whole reasoning of these functions deprecation is explained here:
https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md

Copy link
Member

@mauriciovasquezbernal mauriciovasquezbernal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, handling this one is a mess. It breaks the --connection-timeout parameter:

Before

time gadgetctl trace exec --remote-address tcp://8.8.8.8:12347 --connection-timeout 1
INFO[0000] Experimental features enabled
RUNTIME.CONTAINERNAME            PID        PPID       COMM              PCOMM            RET ARGS
Error: running gadget: dialing target on node "8.8.8.8": dialing "8.8.8.8:12347" ("8.8.8.8"): context deadline exceeded

real    0m1,026s
user    0m0,023s
sys     0m0,011s

After

$ time gadgetctl trace exec --remote-address tcp://8.8.8.8:12347 --connection-timeout 1
INFO[0000] Experimental features enabled
RUNTIME.CONTAINERNAME            PID        PPID       COMM              PCOMM            RET ARGS
Error: running gadget: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp 8.8.8.8:12347: i/o timeout"

real    0m20,045s
user    0m0,015s
sys     0m0,014s

I tried to look for a solution but I don't know how we're supposed to specify a timeout without using Dial nor DialContext.

@flyth do you have any idea here?

@flyth
Copy link
Member

flyth commented May 16, 2024

Phew, we really need to check this in depth as we're in the "Especially bad" situation - however, the way that we use it right now (usually targeting specific nodes), we should be fine. If we can postpone this for a while (this doesn't seem to be a critical update), I'll happily pick it up and address it after our next release. There's a couple of things that we can improve upon (adding compression being one of them), so I'd like to do at least the research around it in one go :)

Btw, thanks @eiffel-fl for including that link!

@eiffel-fl
Copy link
Member

Phew, we really need to check this in depth as we're in the "Especially bad" situation - however, the way that we use it right now (usually targeting specific nodes), we should be fine. If we can postpone this for a while (this doesn't seem to be a critical update), I'll happily pick it up and address it after our next release. There's a couple of things that we can improve upon (adding compression being one of them), so I'd like to do at least the research around it in one go :)

There is no emergency on it.
Particularly, we can, in a first time, deal with the low hanging fruits of simple replacements of Dial*(), mark the complicated one as ``// NOLINTNEXTLINEand handle them later as these functions will not be removed fromgo-gprc` code base.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file go Pull requests that update Go code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants