Skip to content

ci: revert to grpc v1.71.2 to reduce test flakiness#16027

Open
scotthart wants to merge 1 commit intogoogleapis:mainfrom
scotthart:ci_grpc_1_71_2
Open

ci: revert to grpc v1.71.2 to reduce test flakiness#16027
scotthart wants to merge 1 commit intogoogleapis:mainfrom
scotthart:ci_grpc_1_71_2

Conversation

@scotthart
Copy link
Member

No description provided.

@scotthart scotthart requested a review from a team as a code owner March 4, 2026 19:25
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses issues with test flakiness by rolling back the gRPC library version across multiple build environments and installation instructions. The update ensures that development and CI processes utilize a more stable gRPC release, which is expected to improve the reliability of automated tests.

Highlights

  • gRPC Version Reversion: The gRPC version used in various CI Dockerfiles and documentation examples has been reverted from v1.76.0 to v1.71.2.
  • CI Stability Improvement: This change aims to reduce test flakiness in the continuous integration pipeline by using a previously stable gRPC version.
Changelog
  • ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/demo-debian-bullseye.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/fedora-latest-cmake.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/fedora-latest-cxx20.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/gcc-oldest.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/ubuntu-20.04-install.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile
    • Reverted gRPC version from v1.76.0 to v1.71.2.
  • doc/packaging.md
    • Updated gRPC installation examples to use version v1.71.2.
Activity
  • No specific activity (comments, reviews, progress) has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request reverts the gRPC version from v1.76.0 to v1.71.2 across multiple Dockerfiles and documentation. While the changes are straightforward, I've noted that the gRPC version is hardcoded in many places. To improve maintainability and simplify future updates, I've suggested using variables in the Dockerfiles and placeholders in the documentation to avoid this duplication, aligning with the repository's style guide.

# ```bash
WORKDIR /var/tmp/build/grpc
RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.76.0.tar.gz | \
RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \

Choose a reason for hiding this comment

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

medium

To improve maintainability and align with the repository's style guide, consider defining the gRPC version in an ARG. The version string is duplicated across many Dockerfiles, making updates tedious and error-prone.

For example:

  1. Add ARG GRPC_VERSION=v1.71.2 at the top of the file.
  2. Change this line to use the variable:
RUN curl -fsSL https://github.com/grpc/grpc/archive/${GRPC_VERSION}.tar.gz | \

This would make future version updates much simpler.

References
  1. The repository style guide states a preference for factoring out duplicated code when it appears 3 or more times in non-test files. This is relevant here as the gRPC version string is duplicated across many Dockerfiles. (link)

Copy link
Collaborator

Choose a reason for hiding this comment

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

+1 to this, although not in scope of this PR.

```bash
mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc
curl -fsSL https://github.com/grpc/grpc/archive/v1.76.0.tar.gz | \
curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \

Choose a reason for hiding this comment

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

medium

Similar to the Dockerfiles, the gRPC version is hardcoded multiple times in this documentation file. This can lead to inconsistencies if a version is missed during an update. Consider using a placeholder for the version number (e.g., {{GRPC_VERSION}}) and a script to substitute it with the correct version. This would ensure consistency and simplify future updates.

References
  1. The repository style guide states a preference for factoring out duplicated code when it appears 3 or more times in non-test files. This is relevant here as the gRPC version string is duplicated multiple times within this documentation file. (link)

@codecov
Copy link

codecov bot commented Mar 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.63%. Comparing base (850fd1f) to head (b6c91df).

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #16027   +/-   ##
=======================================
  Coverage   92.63%   92.63%           
=======================================
  Files        2335     2335           
  Lines      214709   214709           
=======================================
+ Hits       198905   198906    +1     
+ Misses      15804    15803    -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Collaborator

@diegomarquezp diegomarquezp left a comment

Choose a reason for hiding this comment

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

I see the Dockerfiles' gRPC versions were updated.

In which CIs do we expect to see less flakiness?

# ```bash
WORKDIR /var/tmp/build/grpc
RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.76.0.tar.gz | \
RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \
Copy link
Collaborator

Choose a reason for hiding this comment

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

+1 to this, although not in scope of this PR.

@scotthart
Copy link
Member Author

I see the Dockerfiles' gRPC versions were updated.

In which CIs do we expect to see less flakiness?

A lot of the demo-* builds were encountering a "double free" memory error when executing quickstarts. It appears to be some type of issue between grpc and openssl as the program is exiting.

@devbww
Copy link
Contributor

devbww commented Mar 5, 2026

I see the Dockerfiles' gRPC versions were updated.
In which CIs do we expect to see less flakiness?

A lot of the demo-* builds were encountering a "double free" memory error when executing quickstarts. It appears to be some type of issue between grpc and openssl as the program is exiting.

Wouldn't this be a good thing to say in the PR description, instead of just "reduce flakiness" in the title?

Not every PR deserves a description, but it looks like I currently have to go back three months (~80 PRs) before I find a PR that has one, and then another month before finding the next one. That seems sparse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants