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
Upgrade GRPC dependencies #3342
Conversation
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.
@gottwald is a member of our Team together with @timoreimann and we were working closely together. Therefore, naturally, I can give my LGTM already!
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.
LGTM.
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.
LGTM
Newer protobuf libs check for valid utf-8 chars in a stream of strings. Random bytes casted to a string will not always yield a valid utf-8 character. This change enforces a valid set of characters used as source for the random string in the integration test.
What does this PR do?
Updates specific dependencies to the most recent stable versions and fixes one testing bug that was made visible by the upgrade.
Motivation
We're working internally on integrating stackdriver into traefik (PR will follow). We need newer grpc and protobuf libraries to make it work. While upgrading those we've discovered outdated libs, which some even were in a pre-stable version.
More
Additional Notes
Only one test broke with the update which is fixed in 329efa5.
The old protobuf library did not validate string types. The proto3 specifications state that the string type must be encoded as valid UTF-8 and validation was introduced in newer versions of the protobuf library.
This broke this one test in traefik that created a string by creating a random set of bytes and casting it into a string, which yields non-valid UTF-8 characters.