Skip to content

[codex] 增强 request gate 诊断并提供可选等待上限#265

Merged
KilimiaoSix merged 2 commits into
qxcnm:mainfrom
KilimiaoSix:codex/request-gate-timeout
May 24, 2026
Merged

[codex] 增强 request gate 诊断并提供可选等待上限#265
KilimiaoSix merged 2 commits into
qxcnm:mainfrom
KilimiaoSix:codex/request-gate-timeout

Conversation

@KilimiaoSix
Copy link
Copy Markdown
Collaborator

@KilimiaoSix KilimiaoSix commented May 24, 2026

变更概述

本次 PR 聚焦增强 gateway request gate 的诊断能力,并提供可选的有界等待配置,用于排查/缓解同一 API key、同一路径、同一模型高并发场景下的队头阻塞。

主要改动:

  • 保持 request gate 默认行为不变:CODEXMANAGER_REQUEST_GATE_WAIT_TIMEOUT_MS 未设置或为 0 时,仍按原逻辑等待到请求 deadline。
  • 保留并强化非零 CODEXMANAGER_REQUEST_GATE_WAIT_TIMEOUT_MS 的能力:管理员可以显式配置例如 5000,让 gate 最多等待 5 秒,超时后记录 REQUEST_GATE_SKIP reason=gate_wait_timeout 并继续请求上游。
  • 为 request gate 增加等待、获取、跳过日志,包含 wait_ms 和跳过原因,便于区分 gate 队头阻塞和真实上游/网络慢响应。
  • 增强 gateway trace/error stdout 诊断能力,并在 BRIDGE_RESULT 中补充 first_response_ms,方便定位首字节耗时。
  • Docker compose 中只保留 CODEXMANAGER_REQUEST_GATE_WAIT_TIMEOUT_MS=5000 的注释示例,不默认开启,避免改变通用 Docker 部署行为。
  • 增加 docs/report/gateway-request-gate-fix-20260523.md,记录根因、可选缓解方案、Docker 压测结果和剩余风险。

影响范围

涉及范围主要在:

  • crates/service/src/gateway/core/runtime_config.rs
  • crates/service/src/gateway/upstream/proxy_pipeline/request_gate.rs
  • crates/service/src/gateway/observability/trace_log.rs
  • crates/service/src/gateway/observability/error_log.rs
  • crates/service/src/gateway/observability/http_bridge/delivery.rs
  • crates/service/src/gateway/upstream/protocol/aggregate_api.rs
  • crates/service/src/gateway/upstream/proxy_pipeline/response_finalize.rs
  • Dockerfile / docker-compose 相关诊断配置与注释示例
  • docs/report/gateway-request-gate-fix-20260523.md

范围说明

本 PR 不修改账号认证、API key 持久化、计费、权限边界或 SQLite schema。

本 PR 也不把 5 秒 gate 等待上限作为通用默认行为;只有显式配置 CODEXMANAGER_REQUEST_GATE_WAIT_TIMEOUT_MS 为非零值时才启用。

issue #264 中提到的 UPSTREAM_STREAM_TIMEOUT_MS 同时承担首字节等待和 stream idle timeout 的问题,当前按配置预期行为处理,不纳入本 PR 修复范围。

验证

已执行并通过:

  • cargo test -p codexmanager-service request_gate --lib
  • cargo test -p codexmanager-service trace_log --lib
  • cargo check -p codexmanager-service --all-targets

补充说明:

  • cargo fmt -- --check 已在 rebased 分支上尝试执行,但最新 upstream/main 中存在 compact-model 相关代码的无关格式化差异。为避免把不属于本 PR 的格式化改动混入,本 PR 未包含这些无关格式化修改。

@KilimiaoSix KilimiaoSix changed the title [codex] Bound gateway request gate wait [codex] 限制 gateway request gate 默认等待时间 May 24, 2026
@KilimiaoSix KilimiaoSix changed the title [codex] 限制 gateway request gate 默认等待时间 [codex] 增强 request gate 诊断并提供可选等待上限 May 24, 2026
@KilimiaoSix KilimiaoSix merged commit 47cfd25 into qxcnm:main May 24, 2026
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.

1 participant