-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Force pkg dependencies to older ones compatible with gogo/protobuf #4164
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
Force pkg dependencies to older ones compatible with gogo/protobuf #4164
Conversation
The continerd/ttrpc package, used to support the runtimes of type "vm", relies on the gogo/protobuf protocol buffer implementation. Recently, google updated the golang protocol buffer implementation with a newer and backward incompatible API: https://blog.golang.org/protobuf-apiv2 The gogo/protobuf protocol has not been updated and is now incompatible with the newer golang protocol buffer implementation. Unfortunately, the containerd/ttrpc package imports also the package: google.golang.org/genproto/googleapis/rpc/status which is generated by means of the golang protocol buffer. With the newer version, the generated code is no more compatible with gogo/protobuf, leading to panic during execution of the ttrpc code. While the ttrpc package needs a proper fix, this patch downgrades the version of the golang/protobuf, genproto, and grpc. Signed-off-by: Fabiano Fidêncio <[email protected]> Signed-off-by: Francesco Giudici <[email protected]> Signed-off-by: Mrunal Patel <[email protected]>
|
/cc @fgiudici |
|
@fidencio: GitHub didn't allow me to request PR reviews from the following users: fgiudici. Note that only cri-o members and repo collaborators can review this PR, and authors cannot review their own PRs. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
Tested the branch, I can confirm it solves #3991 |
Codecov Report
@@ Coverage Diff @@
## master #4164 +/- ##
=======================================
Coverage 40.85% 40.85%
=======================================
Files 111 111
Lines 9501 9501
=======================================
Hits 3882 3882
Misses 5242 5242
Partials 377 377 |
|
@fidencio: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
This looks fine to me for now. Next, we should analyze and reduce our deps to just cri-api + utils from k8s.io. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: fidencio, mrunalp The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/lgtm |
What type of PR is this?
/kind bug
What this PR does / why we need it:
The continerd/ttrpc package, used to support the runtimes of type "vm",
relies on the gogo/protobuf protocol buffer implementation.
Recently, google updated the golang protocol buffer implementation with
a newer and backward incompatible API:
https://blog.golang.org/protobuf-apiv2
The gogo/protobuf protocol has not been updated and is now incompatible
with the newer golang protocol buffer implementation.
Unfortunately, the containerd/ttrpc package imports also the package:
google.golang.org/genproto/googleapis/rpc/status
which is generated by means of the golang protocol buffer. With the
newer version, the generated code is no more compatible with
gogo/protobuf, leading to panic during execution of the ttrpc code.
While the ttrpc package needs a proper fix, this patch downgrades the
version of the golang/protobuf, genproto, and grpc.
Which issue(s) this PR fixes:
Fixes #3991
Special notes for your reviewer:
@fgiudici, @mrunalp, @haircommander,
Seems that this patch is the simplest we can go for the #3991 issue.
This is basically ...
... followed by a
make vendor.This came up from a suggestion for stopping vendoring
k8s.io/kubernetes, which I implemented in a separate branch, and then just downgrading the needed bits. After doing that, I've decided to only downgrade the needed bits without having to copy k8s.io/kubernetes into CRI-O and it just works as expected.Let's see if CI is happy about it.
Ah, I've added Francesco's and Mrunal's Signed-off-by, after talking to them and, mainly, after having this patch based on their work and / or suggestions.
Does this PR introduce a user-facing change?