envoyproxy/envoy

`retry_back_off.max_interval` is used as per-try timeout for gRPC services (`core`) retry strategy

Open

#38,847 建立於 2025年3月21日

在 GitHub 查看
 (5 留言) (2 反應) (0 負責人)C++ (5,373 fork)batch import
area/grpcarea/retrybugenhancementhelp wantedno stalebot

倉庫指標

Star
 (27,997 star)
PR 合併指標
 (平均合併 8天) (30 天內合併 378 個 PR)

描述

Title: Back-off retry_back_off.max_interval is used as per-try timeout for gRPC services (core) retry strategy

Description: We noticed that when using ext_authz filter with retry_policy configured for gRPC service, our service requests were timing out rather quickly. Turned out that retry_back_off.max_interval is actually used as per-try timeout when core retry policy is converted to route retry policy.

Here we convert config.core.v3.RetryPolicy retry policy to config.route.v3.RetryPolicy retry policy for gRPC service and that function uses retry_back_off.max_interval to populate per-try timeout here.

I think we should add dedicated per-try timeout configuration to the core retry policy and use that instead.

Repro steps: Define an ext_authz filter using gRPC service and configure retry_back_off.max_interval set to very low value, like 1 or 2 millisecond. Make sure you have retry_back_off.base_interval set lower than the max_interval.

Make a request through Envoy that hits the filter and observe it time out.

貢獻者指南