chore: migration trace - send transitive dependencies in server reflection#653
chore: migration trace - send transitive dependencies in server reflection#653He-Pin wants to merge 1 commit intoapache:mainfrom
Conversation
This commit marks the migration of akka/akka-grpc@bf1e13c8 into pekko-grpc. The feature was independently ported to apache/pekko-grpc as PR apache#643 (commit 7a95416). Local migration commit: b5722812 Upstream: akka/akka-grpc@bf1e13c8 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Closing this PR as it contains no actual file changes — it was created purely as an audit trail marker noting that this feature was independently ported to pekko-grpc as PR #643 (commit 7a95416). Per our migration policy, PRs with no file changes provide no review value. The traceability information is preserved in migration-checklist.md and commits_detailed.csv in the local migration branch. |
Local Investigation Results: Why This PR Has No File ChangesI've run a thorough local investigation to understand why this PR contains zero file changes. Finding: The server reflection transitive dependencies feature (ported from akka/akka-grpc commit Verification — comparing our migration commit
Since the feature is already present in |
Motivation
This PR tracks the migration of upstream akka/akka-grpc commit
bf1e13c8which adds transitive dependency tracking to the gRPC Server Reflection implementation.The gRPC Server Reflection protocol requires that responses include not just the requested file descriptor but also all its transitive proto dependencies. Without this, clients using reflection (e.g., grpcurl, Postman gRPC) may fail to resolve types referenced in service definitions.
Modification
ServerReflectionImpl.serverReflectionInfoto usestatefulMapwith aSet[String]state to track already-sent descriptors per stream, preventing duplicate sendswithTransitiveDepshelper to collect full transitive closure of proto dependenciestoFileDescriptorResponsehelper to convert descriptors to reflection responsesResult
Server reflection correctly returns all transitive proto dependencies, enabling gRPC clients that rely on reflection to fully resolve complex proto type hierarchies.
References
b5722812