-
Notifications
You must be signed in to change notification settings - Fork 6.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/protobuf] Update grpc to 1.65.5 and update protobuf to 5.26.1 #39800
Conversation
@MonicaLiu0311 ready for review. |
grpc & protobuf & upbAll features are tested successfully in the following triplet:
openvinoFeatures
|
@Tradias Please resolve the conflict. |
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.
Partial Review:
This PR is claiming to update grpc
and protobuf
, but I am also seeing updates for:
utf8-range
upb
srpc
openvino
brpc
arcus
Why are these changes needed for the version update? If they are not, please split apart into their own respective PRs. I'm not saying that the changes here wouldn't be accepted just that they should be reviewed on their own.
Update to latest protobuf isn't possible because gRPC latest does not support it and it is difficult to patch (unstable upb API being the primary reason).
Can you explain why grpc
doesn't support latest protobuf
? i.e., did grpc
drop support for protobuf
or is this an upstream bug? In general, we don't accept patches that add functionality that isn't present in upstream. That is, if grpc
doesn't support latest protobuf
and that is by design then we will not add the functionality through vcpkg. We typically only accept version updates to latest barring unique circumstances so this needs a bit more explanation.
In general, there are a lot of modifications to patches here. I need a bit of context as to why you are making those changes and whether or not they have been reported to upstream. Overall, these changes look fine, but I want to make sure we aren't creating more maintenance burden here by adding support for stuff that upstream by design does not support.
ports/brpc/protobuf.patch
Outdated
@@ -1,5 +1,262 @@ | |||
diff --git a/src/brpc/esp_message.cpp b/src/brpc/esp_message.cpp |
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.
Can you explain where this patch is coming from? What problem does it solve and why is it needed to update grpc
and protobuf
? In general, this patch looks upstream-able.
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 addresses the breaking changes caused by the protobuf update from v4 to v5. It can certainly be upstreamed.
@JavierMatosD Thank you for looking into this pr (again). The story is very similar to the previous one #35781. We are trying to force a protobuf version onto libraries that don't support it (yet) or are unmaintained. I haven't created any reports upstream and honestly don't feel like doing it, so feel free to do so.
|
72241a3
to
9240d3c
Compare
Thank you for your work on upgrading gRPC! |
Upstream "support protobuf v5" issues: |
When will this change be accepted? I need uds in windws (grpc>=1.63) |
I have started to experiment with this branch to prepare my project for this upgrade. It seems that I have hit a known problem with protobuf.
This seems the same symptom as #39459 |
@pedrolamarao You describe an issue that exists in the protobuf version on master. In the linked vcpkg issue you will find the protobuf commit that fixed it and if you check it out you can see that the fix made it into the protobuf version that this pull request introduces protocolbuffers/protobuf@f78f9c5. I also just compiled a small program with vcpkg master branch (failed as expected) and then with this branch, succeeded. In other words, it looks like you did something wrong when trying to test this branch and instead used current master branch. Possible causes:
|
@Tradias thanks, that sounds likely, sorry for the noise. |
What needs to be done to move this forward? @JavierMatosD are you able to do a second pass? |
@BillyONeal Please take a look at this PR. |
hey, buddies when will it be merged? |
@BillyONeal, @vicroms, @data-queue discussed this today. @BillyONeal - " @ras0219-msft - "It is a reimplementation of protobuf that is small, so it has independent implementation from protobuf but it is c, small, and unstable. It sounds like @BillyONeal - "Maybe @ras0219-msft - "Why was #8460 (comment) -> implies it is needed for @ras0219-msft - " @BillyONeal - "That seems to be the thing that people want." @BillyONeal - "We should delist Actions:
Questions:
Since upstream has been notified approx 3 ago, we will give them another 3 weeks to respond before we start delisting ports. |
It looks like apache/brpc#2782 was merged. I'm assuming the I believe that the fix-NAN-on-Win11.patch could be applied to the |
There is another issue that I'm seeing after updating, I didn't have it with previous snapshot (1.65.4?) debug check failure at: CHECK(*from_len <= recv_from_source_addr_len_); // 128 <= 16 in 1.65.5 from_len is coming from where it's defined as
while in 1.65.4 it's coming from where it's defined as
and then passed down. Though I think the check itself may be flawed:
We are copying Edit: bug is tracked here and is also present upstream: grpc/grpc#37969 |
…. Add proper stage0 to upb
…. Download official srpc protobuf v5 patch
apache/brpc#2782 was merged but the latest brpc release appeared 3 days before. I updated brpc and added the protobuf v5 fix as a patch. I do not know how to delist I added the I preemptively added a patch for grpc/grpc#37969 changing |
Done |
It's been a very long time since this PR, any progress? |
This is great ! |
Thank a lot to everyone! |
Fixes
#37440
#29697
#38316
#37729
#30583
#40803
Upstream issues:
Ultimaker/libArcus#156
apache/brpc#2757
sogou/srpc#406
Update to latest protobuf isn't possible because gRPC latest does not support it and it is difficult to patch (unstable upb API being the primary reason).
Some ports had to be patched to support protobuf v5.
upb now has (hopefully) proper stage0 build to generate
descriptor.upb.h/c
files. Seeing that the supposedly tested-for-staleness files here: https://github.com/protocolbuffers/protobuf/tree/v25.1/upb/cmake/google/protobuf are actually stale../vcpkg x-add-version --all
and committing the result.