Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@littlejawa
Copy link
Contributor

What type of PR is this?

/kind bug

What this PR does / why we need it:

Looking at what others did to fix the gogo/protobuf issue, I've found this suggestion:
jaegertracing/jaeger#2857 (comment)

The idea is to ignore the fields that were added to the problematic data structure, letting gogo/protobuf handle the ones it knows about.
I replicated this change in cri-o's vendored gogo/protobuf code, and it seems to do the trick - kata containers are still running, and when the kata shim returns an error, it is properly reported in the container's status, without crashing.

I don't think this is a proper fix, but it may be a good workaround for 1.25 and later releases, until we can rely on the containerd version where gogo/protobuf is removed from the shim v2 interface.

Which issue(s) this PR fixes:

Fixes: #6350

Special notes for your reviewer:

Does this PR introduce a user-facing change?

None

@littlejawa littlejawa requested a review from mrunalp as a code owner November 10, 2022 09:21
@openshift-ci openshift-ci bot added release-note-none Denotes a PR that doesn't merit a release note. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. kind/bug Categorizes issue or PR as related to a bug. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Nov 10, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 10, 2022

Hi @littlejawa. Thanks for your PR.

I'm waiting for a cri-o member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

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.

@openshift-ci openshift-ci bot requested review from klihub and wgahnagl November 10, 2022 09:22
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 10, 2022

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: littlejawa
Once this PR has been reviewed and has the lgtm label, please assign umohnani8 for approval by writing /assign @umohnani8 in a comment. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@littlejawa
Copy link
Contributor Author

@fidencio - I would like your comments on this one as you've fought with this problem in the past

@littlejawa
Copy link
Contributor Author

/test

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 10, 2022

@littlejawa: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

Details

In response to this:

/test

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.

@codecov
Copy link

codecov bot commented Nov 10, 2022

Codecov Report

Merging #6371 (06bd3ac) into main (f11eeef) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6371   +/-   ##
=======================================
  Coverage   43.36%   43.36%           
=======================================
  Files         123      123           
  Lines       14164    14164           
=======================================
  Hits         6142     6142           
- Misses       7339     7340    +1     
+ Partials      683      682    -1     

@littlejawa
Copy link
Contributor Author

The vendor verification fails, of course :-(

I'm not too familiar with go, but I guess the clean way of doing it would be to fork gogo/protobuf, put my change there, and vendor that instead of the original gogo/protobuf (with a "replace" directive) ?
Is there an easier way to make it?

Anyway, before looking into it, I'd like some discussion/agreement on the direction I'm taking.

@haircommander
Copy link
Member

yeah that's the right direction, unless they'd upstream this patch. do you want to try upstreaming first?

@haircommander
Copy link
Member

haircommander commented Nov 10, 2022

yeah that's the right direction, unless they'd upstream this patch. do you want to try upstreaming first?

LOL I should have looked at the patch first. no chance they'd accept--to specific. I agree, replace directive is the way. I am generally not stoked about this change but as a temporary way to unbork kata I am fine with it

@littlejawa
Copy link
Contributor Author

Yeah, I don't think it would be accepted. But more than that : the core of the issue with gogo/protobuf is that it's not maintained anymore, so the chances of getting anything upstream are small.

@littlejawa
Copy link
Contributor Author

I think #6381 is a cleaner solution - closing

@littlejawa littlejawa closed this Nov 17, 2022
@littlejawa littlejawa deleted the fix_6350 branch March 27, 2023 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Indicates the PR's author has DCO signed all their commits. kind/bug Categorizes issue or PR as related to a bug. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. release-note-none Denotes a PR that doesn't merit a release note.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

runtime_vm: golang panic: "protobuf tag not enough fields in Status.state" when handling errors from the kata shim

2 participants