Skip to content

build(deps): Align protobuf and related dependencies with the gRPC v1.81.1 bump#8888

Open
mc-nv wants to merge 5 commits into
mainfrom
mchornyi/TRI-1608/cinightly-fix-broken-build
Open

build(deps): Align protobuf and related dependencies with the gRPC v1.81.1 bump#8888
mc-nv wants to merge 5 commits into
mainfrom
mchornyi/TRI-1608/cinightly-fix-broken-build

Conversation

@mc-nv

@mc-nv mc-nv commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

What does the PR do?

Fixes the nightly server build against protobuf v33 (gRPC v1.81.1 third_party bump):

  • Compute _FINDPACKAGE_UTF8_RANGE_CONFIG_DIR and pass utf8_range_DIR into the triton-server ExternalProject cache args — protobuf v33's CMake package config now requires the utf8_range package config to resolve.
  • Replace the removed google::protobuf::stringpiece_internal::StringPiece with absl::string_view in the gRPC model-config handler, and surface the previously ignored JsonStringToMessage() status as an INTERNAL error. (The license header of grpc_server.cc was converted to the SPDX form by the repo pre-commit hooks.)

Checklist

  • PR title reflects the change and is of format <commit_type>: <Title>
  • Changes are described in the pull request.
  • Related issues are referenced.
  • Populated github labels field
  • Added test plan and verified test passes.
  • Verified that the PR passes existing CI.
  • Verified copyright is correct on all changed files.
  • Added succinct git squash message before merging ref.
  • All template sections are filled out.
  • Optional: Additional screenshots for behavior/output changes with before/after.

Related PRs:

Where should the reviewer start?

  • CMakeLists.txt_FINDPACKAGE_UTF8_RANGE_CONFIG_DIR / utf8_range_DIR cache arg

Test plan:

Nightly build pipeline on internal GitLab CI.

  • CI Pipeline ID: 58489960

Caveats:

None.

Background

The gRPC v1.81.1 / protobuf v33 update in triton-inference-server/third_party#76 broke the nightly build across the Triton repos; this PR chain repairs it.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Resolves: TRI-1608
CI (internal): [#58489960](http://tritonserver.local/ci/pipelines/58489960)

mc-nv added 3 commits July 17, 2026 19:16
The protobuf bundled with gRPC v1.81.1 (v33.5) installs utf8_range as a
separate CMake package and protobuf-config.cmake references the
utf8_range::utf8_validity imported target. find_package(Protobuf CONFIG)
with only Protobuf_DIR set fails at generate time with 'the target was
not found'. Provide utf8_range_DIR alongside Protobuf_DIR.
…view

protobuf v33 (bundled with gRPC v1.81.1) removed the
stringpiece_internal namespace; JsonStringToMessage now takes
absl::string_view. Also surface a JSON parse failure as an INTERNAL
error instead of silently ignoring the returned status.
The python client gRPC stubs are generated with grpcio-tools, which was
installed unpinned and floated to the newest PyPI release (1.82.x)
after the gRPC v1.81.1 third_party bump. The generated
grpc_service_pb2_grpc.py then asserted grpcio>=1.82.1 at import time,
while the runtime shipped an older grpcio — breaking every L0 test that
imports tritonclient.grpc. Pin grpcio-tools to 1.81.x so the generated
stubs track the same gRPC minor as the C++ library, keeping the whole
stack on one deterministic train.
@mc-nv
mc-nv force-pushed the mchornyi/TRI-1608/cinightly-fix-broken-build branch from f19ec3e to e898971 Compare July 18, 2026 02:16
mc-nv added 2 commits July 17, 2026 21:22
gRPC v1.81 changed its connect failure message from
'connect: Connection refused (111)' to 'Connection refused'.
Update the L0_lifecycle shutdown assertions to match.
protobuf v33's libprotobuf.a calls abseil internally (CHECK/LOG,
absl::Mutex). The tritonserver executable statically links libprotobuf.a
via the gRPC endpoint but only pulled abseil incidentally through
metrics (prometheus) or GPU libraries — so minimal build variants
(e.g. --enable-tracing without --enable-metrics) failed to link with
undefined absl::log_internal / absl::Mutex references (L0_build_variants).

Link the protobuf::libprotobuf package target directly so protobuf's own
abseil dependencies are placed on the executable's link line. No abseil
target is referenced; protobuf carries its own transitive deps.
@mc-nv
mc-nv marked this pull request as ready for review July 18, 2026 17:31
@@ -1,30 +1,7 @@
#!/usr/bin/env python3

# Copyright 2018-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

why did we change this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

it will be reverted later.

Comment thread Dockerfile.sdk
vim \
wget && \
pip3 install "grpcio>=1.81.1" grpcio-tools && \
pip3 install "grpcio>=1.81.1,<1.82" "grpcio-tools>=1.81.1,<1.82" && \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

didn't realize bumping grpc would entail so many changes - thank you for shepherding and fixing all these! i assume future bumps may entail similar work?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We may not see such an issue, if we will take dependency management under appropriate control

@mc-nv
mc-nv requested a review from nv-rinig July 20, 2026 21:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants