Skip to content

Fix gRPC CI pipeline and Windows HTTP config quoting - #2984

Open
meteorcloudy wants to merge 1 commit into
masterfrom
fix-grpc-ci
Open

meteorcloudy wants to merge 1 commit into
masterfrom
fix-grpc-ci

Conversation

@meteorcloudy

@meteorcloudy meteorcloudy commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Problem

The gRPC pipeline fails on Windows, macOS arm64, and Ubuntu 22.04 LTS:

  • On Windows, shlex.quote wraps --http_config URLs that contain query parameters in single quotes, which cmd.exe does not strip, causing urllib.request.urlopen to reject the URL.
  • gRPC's tools/bazel wrapper overrides USE_BAZEL_VERSION with .bazelversion on Linux and macOS, and fails on Windows.
  • On macOS arm64 and Windows, the CI job does not exclude Linux-only (no_mac) or Windows-incompatible (no_windows, grpc-fuzztest) targets.
  • On Ubuntu 22.04 LTS, Clang 14 with GCC 11 libstdc++ fails header parsing in C++17 mode with -Winvalid-partial-specialization.

Solution

  • Quote runner command arguments on Windows using double quotes with .bat and MSVC UCRT escaping ("", doubled backslashes before quotes, and %%), and reject embedded newlines or NUL bytes.
  • Set BAZELISK_SKIP_WRAPPER: "true" for all tasks in pipelines/grpc.yml.
  • Add platform-specific --build_tag_filters and --test_tag_filters flags in pipelines/grpc.yml, and suppress -Wno-invalid-partial-specialization on Linux.

@meteorcloudy
meteorcloudy requested a review from a team as a code owner November 2, 2026 15:18
@meteorcloudy
meteorcloudy requested review from fweikert and ted-xie and removed request for a team November 2, 2026 15:18
@SalmaSamy

SalmaSamy commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Could we also add BAZELISK_SKIP_WRAPPER: "true" to the gRPC tasks in grpc.yml?
gRPC's tools/bazel wrapper makes Bazelisk run Bazel 8.7.0 (from .bazelversion) instead of Bazel@HEAD on Linux/macOS, and fails on Windows #826.

## Problem

The gRPC pipeline fails on Windows, macOS arm64, and Ubuntu 22.04 LTS:

- On Windows, `shlex.quote` wraps `--http_config` URLs that contain query parameters in single quotes, which `cmd.exe` does not strip, causing `urllib.request.urlopen` to reject the URL.
- gRPC's `tools/bazel` wrapper overrides `USE_BAZEL_VERSION` with `.bazelversion` on Linux and macOS, and fails on Windows.
- On macOS arm64 and Windows, the CI job does not exclude Linux-only (`no_mac`) or Windows-incompatible (`no_windows`, `grpc-fuzztest`) targets.
- On Ubuntu 22.04 LTS, Clang 14 with GCC 11 `libstdc++` fails header parsing in C++17 mode with `-Winvalid-partial-specialization`.

## Solution

- Quote runner command arguments on Windows using double quotes with `.bat` and MSVC UCRT escaping (`""`, doubled backslashes before quotes, and `%%`), and reject embedded newlines or NUL bytes.
- Set `BAZELISK_SKIP_WRAPPER: "true"` for all tasks in `pipelines/grpc.yml`.
- Add platform-specific `--build_tag_filters` and `--test_tag_filters` flags in `pipelines/grpc.yml`, and suppress `-Wno-invalid-partial-specialization` on Linux.
@meteorcloudy

Copy link
Copy Markdown
Member Author

Done — added BAZELISK_SKIP_WRAPPER: "true" to all tasks in pipelines/grpc.yml and rebased onto master. Thanks!

This branch has not been deployed

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants