docs: bind HTTP/1 header resource gaps to Pingora supplier paths - #44
docs: bind HTTP/1 header resource gaps to Pingora supplier paths#44seonghobae wants to merge 36 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughv2 Runtime Isolation에 upstream 응답 본문 진행 수명 예산을 추가했습니다. Admin Config의 버전별 동작을 문서화했습니다. Pingora HTTP/1·HTTP/2 헤더 제한과 parser admission hook의 현재 경계를 명시했습니다. 관련 추적 자료와 성능 검증 조건을 갱신했습니다. Changes런타임 경계 문서화
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This update documents existing HTTP/1 parser boundaries, HTTP/2 accounting distinctions, response-lifetime semantics, and bounded-origin performance contracts without changing runtime behavior. No current merge-readiness risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review Please review exact head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='0145c455f5010bcff2af96e2293530c4fdf35aa4'
head='dadbca5013c0d7db8377013d39cde35af2ade9c9'
git cat-file -e "${base}^{commit}"
git cat-file -e "${head}^{commit}"
printf '%s\n' '=== Repository guidance ==='
fd -HI -t f '^(AGENTS|CONTRIBUTING|CODING|REVIEW).*|^\.coderabbit\.ya?ml$' . \
-E .git -E node_modules -E target \
| sort \
| while IFS= read -r file; do
echo "--- ${file}"
sed -n '1,240p' "$file"
done
printf '%s\n' '=== Exact changed files ==='
git diff --name-status "$base" "$head"
printf '%s\n' '=== Exact range diff ==='
git diff --find-renames --find-copies --check "$base" "$head"
git diff --find-renames --find-copies --unified=100 "$base" "$head" -- \
TRD.md SECURITY.md docs/doctoring/TRACEABILITY.md
printf '%s\n' '=== Current document outlines and relevant terms ==='
for file in TRD.md SECURITY.md docs/doctoring/TRACEABILITY.md; do
if [ -f "$file" ]; then
echo "--- ${file}"
rg -n -i -C 4 \
'pingora|header|MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE|max_header_list_size|H2Options|ProxyHttp|request_filter|p95|16-VU|1600|four-worker|supplier|`#43`|`#993`|APA|reference' \
"$file" || true
fi
doneLength of output: 80340 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
printf '%s\n' '=== Dependency pin ==='
rg -n -C 3 'pingora|09696b51bc59315353d96686355861604d0bb48c' Cargo.toml Cargo.lock 2>/dev/null || true
printf '%s\n' '=== Supplier issue `#993` metadata ==='
gh api "repos/${repo}/issues/993" \
--jq '{number, state, title, user: .user.login, created_at, updated_at, pull_request}' || true
printf '%s\n' '=== Pinned HTTP/1 common.rs constants ==='
gh api "repos/${repo}/contents/pingora-core/src/protocols/http/v1/common.rs?ref=${sha}" \
--jq '.content' | base64 -d \
| nl -ba \
| grep -E -C 5 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE' || true
printf '%s\n' '=== Pinned HTTP/1 server.rs parse and request construction flow ==='
gh api "repos/${repo}/contents/pingora-core/src/protocols/http/v1/server.rs?ref=${sha}" \
--jq '.content' | base64 -d \
| nl -ba \
| grep -E -C 12 'read_request|MAX_HEADER_SIZE|RequestHeader|parse' || true
printf '%s\n' '=== Pinned HTTP/2 server.rs options ==='
gh api "repos/${repo}/contents/pingora-core/src/protocols/http/v2/server.rs?ref=${sha}" \
--jq '.content' | base64 -d \
| nl -ba \
| grep -E -C 10 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options' || true
printf '%s\n' '=== Pinned ProxyHttp request_filter declaration and invocation ==='
gh api "repos/${repo}/contents/pingora-proxy/src/proxy_trait.rs?ref=${sha}" \
--jq '.content' | base64 -d \
| nl -ba \
| grep -E -C 8 'request_filter' || true
gh api "repos/${repo}/contents/pingora-proxy/src/lib.rs?ref=${sha}" \
--jq '.content' | base64 -d \
| nl -ba \
| grep -E -C 12 'request_filter' || true
printf '%s\n' '=== Load-test and bounded-origin source candidates ==='
fd -HI -t f . -E .git -E node_modules -E target \
| grep -Ei '(k6|load|performance|pg.*erd|migration|traffic|benchmark)' \
| sort \
| head -n 200
printf '%s\n' '=== Bounded-origin and performance contract references ==='
rg -n -i -C 5 \
'1600|16\s*VU|four workers|4 workers|Connection:\s*close|service delay|150\s*ms|bounded accept|tagged.*p95|http_req_duration|k6' \
-g '!target/**' -g '!node_modules/**' . || trueLength of output: 101848 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
fetch_source() {
local path="$1"
gh api "repos/${repo}/contents/${path}?ref=${sha}" --jq '.content' | base64 -d
}
numbered_matches() {
local expression="$1"
awk -v expression="$expression" '
{ lines[NR] = $0 }
$0 ~ expression {
start = NR - 10; if (start < 1) start = 1
end = NR + 12
for (line = start; line <= end; line++) {
if (!shown[line]++) printf "%6d %s\n", line, lines[line]
}
print "------"
}
'
}
printf '%s\n' '=== Pinned HTTP/1 constants ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| numbered_matches 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE'
printf '%s\n' '=== Pinned HTTP/1 parsing and RequestHeader construction ==='
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| numbered_matches 'read_request|MAX_HEADER_SIZE|RequestHeader|parse'
printf '%s\n' '=== Pinned HTTP/2 options ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| numbered_matches 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options'
printf '%s\n' '=== Pinned ProxyHttp request_filter trait and call site ==='
fetch_source 'pingora-proxy/src/proxy_trait.rs' \
| numbered_matches 'request_filter'
fetch_source 'pingora-proxy/src/lib.rs' \
| numbered_matches 'request_filter'
printf '%s\n' '=== Capacity runner: fixture validation, origin start, gateway readiness, and k6 ==='
awk '
NR >= 1 && NR <= 230 { printf "%6d %s\n", NR, $0 }
' tests/load/run_pg_erd_capacity.sh
printf '%s\n' '=== Capacity k6 contract ==='
awk '
NR >= 1 && NR <= 110 { printf "%6d %s\n", NR, $0 }
' tests/load/pg_erd_gateway_capacity.js
printf '%s\n' '=== Capacity workflow invocation ==='
awk '
NR >= 1 && NR <= 240 { printf "%6d %s\n", NR, $0 }
' .github/workflows/pg-erd-capacity.yml
printf '%s\n' '=== GitHub issue `#993` author metadata ==='
gh api "repos/${repo}/issues/993" \
--jq '{html_url, title, state, created_at, user: {login: .user.login, name: .user.name}}'Length of output: 79258 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
fetch_source() {
gh api "repos/${repo}/contents/$1?ref=${sha}" --jq '.content' | base64 -d
}
printf '%s\n' '=== HTTP/1 common.rs: all configured parser constants ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| awk '/MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE/ { printf "%6d %s\n", NR, $0 }'
printf '%s\n' '=== HTTP/1 server.rs: read buffer initialization and read_request parse loop ==='
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| awk 'NR >= 200 && NR <= 470 { printf "%6d %s\n", NR, $0 }'
printf '%s\n' '=== HTTP/2 server.rs: default H2 options ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| awk 'NR >= 45 && NR <= 100 { printf "%6d %s\n", NR, $0 }'
printf '%s\n' '=== HTTP/2 server.rs: default-options test values ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| awk 'NR >= 1248 && NR <= 1288 { printf "%6d %s\n", NR, $0 }'
printf '%s\n' '=== Proxy request_filter invocation context ==='
fetch_source 'pingora-proxy/src/lib.rs' \
| awk 'NR >= 1018 && NR <= 1105 { printf "%6d %s\n", NR, $0 }'
printf '%s\n' '=== Pingora tree paths that call read_request and construct Session ==='
tree_json=$(gh api "repos/${repo}/git/trees/${sha}?recursive=1")
printf '%s\n' "$tree_json" \
| jq -r '.tree[] | select(.path | test("(^|/)(server|proxy).*\\.rs$")) | .path' \
| while IFS= read -r path; do
content=$(fetch_source "$path" || true)
if printf '%s\n' "$content" | grep -qE 'read_request\(\)|Session::'; then
echo "--- ${path}"
printf '%s\n' "$content" \
| awk '/read_request\(\)|Session::/ { printf "%6d %s\n", NR, $0 }'
fi
doneLength of output: 32119
I found no blocking issues in the requested scope.
|
|
@coderabbitai review Please restart review on current exact head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='0145c455f5010bcff2af96e2293530c4fdf35aa4'
head='924f5a7b8cf60712348beb11c846d4288c78177e'
git cat-file -e "${base}^{commit}"
git cat-file -e "${head}^{commit}"
printf '%s\n' '=== Repository guidance ==='
fd -HI -t f '^(AGENTS|CONTRIBUTING|CODING|REVIEW).*|^\.coderabbit\.ya?ml$' . \
-E .git -E node_modules -E target \
| sort \
| while IFS= read -r file; do
echo "--- ${file}"
sed -n '1,260p' "$file"
done
printf '%s\n' '=== Exact changed files ==='
git diff --name-status "$base" "$head"
printf '%s\n' '=== Diff validation ==='
git diff --check "$base" "$head"
printf '%s\n' '=== Targeted exact diff ==='
git diff --unified=80 "$base" "$head" -- \
TRD.md SECURITY.md ARCHITECTURE.md CONTEXT_MAP.md UBIQUITOUS_LANGUAGE.md \
docs/doctoring/TRACEABILITY.md
printf '%s\n' '=== Current relevant passages ==='
rg -n -i -C 5 \
'pingora|httpserveroptions|max_header|max.*header|h2options|request_filter|read_request|\
MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE|response.body|response-body|progress|\
admin config|bounded.origin|16.vu|1600|four.worker|p95|production|tls|apa|`#43`|`#993`' \
TRD.md SECURITY.md ARCHITECTURE.md CONTEXT_MAP.md UBIQUITOUS_LANGUAGE.md \
docs/doctoring/TRACEABILITY.md || true
printf '%s\n' '=== Docs-only verification ==='
git diff --numstat "$base" "$head"Length of output: 68566 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
fetch_source() {
gh api "repos/${repo}/contents/$1?ref=${sha}" --jq '.content' | base64 -d
}
printf '%s\n' '=== Pin and supplier issue state ==='
rg -n -C 2 '09696b51bc59315353d96686355861604d0bb48c|pingora\s*=' Cargo.toml Cargo.lock
gh api "repos/${repo}/issues/993" \
--jq '{number, state, title, html_url, user: .user.login, created_at, updated_at}'
printf '%s\n' '=== HTTP/1 parser constants ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| nl -ba | grep -E -C 4 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE'
printf '%s\n' '=== HTTP/1 parse order and RequestHeader construction ==='
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| nl -ba | grep -E -C 16 'read_request|MAX_HEADER_SIZE|RequestHeader|INIT_HEADER_BUF_SIZE'
printf '%s\n' '=== Public server options ==='
fetch_source 'pingora-core/src/apps/mod.rs' \
| nl -ba | grep -E -C 12 'struct HttpServerOptions|HttpServerOptions|header|max_'
printf '%s\n' '=== HTTP/2 header-list defaults ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| nl -ba | grep -E -C 12 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options'
printf '%s\n' '=== Proxy callback signature and invocation ==='
fetch_source 'pingora-proxy/src/proxy_trait.rs' \
| nl -ba | grep -E -C 8 'request_filter'
fetch_source 'pingora-proxy/src/lib.rs' \
| nl -ba | grep -E -C 12 'request_filter'
printf '%s\n' '=== Relevant repository source and load-contract files ==='
fd -HI -t f . -E .git -E node_modules -E target \
| grep -E '(^|/)(runtime_isolation|migration_admin|migration_proxy|gateway_proxy)\.rs$|pg_erd|run_pg_erd_capacity|pg-erd-capacity' \
| sort
printf '%s\n' '=== Response-lifetime and bounded-origin definitions ==='
rg -n -i -C 6 \
'max_upstream_response_body_ms|upstream_response_filter|upstream_response_body_filter|\
response.body.*progress|bounded.accept|Connection: close|service.delay|1600|16.*VU|\
http_req_duration|backend.*p95|frontend.*p95' \
-g '!target/**' -g '!node_modules/**' . || trueLength of output: 7864 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
fetch_source() {
gh api "repos/${repo}/contents/$1?ref=${sha}" --jq '.content' | base64 -d
}
number_matches() {
awk -v pattern="$1" '
{ line[NR] = $0 }
$0 ~ pattern {
first = NR - 12; if (first < 1) first = 1
last = NR + 16
for (i = first; i <= last; i++) {
if (!printed[i]++) printf "%6d %s\n", i, line[i]
}
print "------"
}'
}
printf '%s\n' '=== HTTP/1 fixed parser values ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| number_matches 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE'
printf '%s\n' '=== HTTP/1 read and construction sequence ==='
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| number_matches 'read_request|MAX_HEADER_SIZE|RequestHeader|INIT_HEADER_BUF_SIZE'
printf '%s\n' '=== HttpServerOptions fields ==='
fetch_source 'pingora-core/src/apps/mod.rs' \
| number_matches 'struct HttpServerOptions|HttpServerOptions|max_|header'
printf '%s\n' '=== HTTP/2 defaults ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| number_matches 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options'
printf '%s\n' '=== request_filter order ==='
fetch_source 'pingora-proxy/src/proxy_trait.rs' | number_matches 'request_filter'
fetch_source 'pingora-proxy/src/lib.rs' | number_matches 'request_filter'
printf '%s\n' '=== Candidate response and capacity files ==='
fd -HI -t f . -E .git -E node_modules -E target \
| grep -E '(^|/)(runtime_isolation|migration_admin|migration_proxy|gateway_proxy)\.rs$|pg_erd|run_pg_erd_capacity|pg-erd-capacity' \
| sort
printf '%s\n' '=== Response lifetime and bounded-origin contract locations ==='
rg -n -i -C 6 -e 'max_upstream_response_body_ms' \
-e 'upstream_response_filter' \
-e 'upstream_response_body_filter' \
-e 'Connection: close' \
-e '1600' \
-e 'http_req_duration' \
-e 'backend.*p95' \
-e 'frontend.*p95' \
-g '!target/**' -g '!node_modules/**' . || trueLength of output: 228178 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
fetch_range() {
local path="$1"
local first="$2"
local last="$3"
gh api "repos/${repo}/contents/${path}?ref=${sha}" --jq '.content' \
| base64 -d \
| awk -v first="$first" -v last="$last" 'NR >= first && NR <= last { printf "%6d %s\n", NR, $0 }'
}
printf '%s\n' '=== HTTP/1 constants ==='
fetch_range 'pingora-core/src/protocols/http/v1/common.rs' 20 55
printf '%s\n' '=== HTTP/1 read_request parser loop ==='
fetch_range 'pingora-core/src/protocols/http/v1/server.rs' 272 375
printf '%s\n' '=== Public HttpServerOptions definition ==='
fetch_range 'pingora-core/src/apps/mod.rs' 60 115
printf '%s\n' '=== HTTP/2 bounded defaults and handshake ==='
fetch_range 'pingora-core/src/protocols/http/v2/server.rs' 60 100
fetch_range 'pingora-core/src/protocols/http/v2/server.rs' 1250 1285
printf '%s\n' '=== Local response-lifetime callback bodies ==='
sed -n '200,250p' src/runtime_isolation.rs
sed -n '285,350p' src/migration_proxy.rs
printf '%s\n' '=== Capacity fixture and runner settings ==='
sed -n '1,210p' tests/load/run_pg_erd_capacity.sh
sed -n '1,100p' tests/load/pg_erd_gateway_capacity.jsLength of output: 26679
I found no blocking issues in the requested scope.
✅ Action performedReview finished.
|
|
@coderabbitai review Please review current exact head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='0145c455f5010bcff2af96e2293530c4fdf35aa4'
previous='924f5a7b8cf60712348beb11c846d4288c78177e'
head='926253f4b72d764a74e8cb32c639e822234f61b6'
git cat-file -e "${base}^{commit}"
git cat-file -e "${previous}^{commit}"
git cat-file -e "${head}^{commit}"
printf '%s\n' '=== Repository guidance ==='
fd -HI -t f '^(AGENTS|CONTRIBUTING|CODING|REVIEW).*|^\.coderabbit\.ya?ml$' . \
-E .git -E node_modules -E target \
| sort \
| while IFS= read -r file; do
echo "--- ${file}"
sed -n '1,260p' "$file"
done
printf '%s\n' '=== Complete exact range ==='
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"
git diff --stat "$base" "$head"
printf '%s\n' '=== Later delta after prior review head ==='
git diff --name-status "$previous" "$head"
git diff --check "$previous" "$head"
git diff --unified=100 "$previous" "$head" -- \
OPERABILITY.md API_CONFIG_CONTRACT.md docs/product-technical-gap-baseline.md CHANGELOG.md
printf '%s\n' '=== Full relevant documentation diff ==='
git diff --unified=60 "$base" "$head" -- \
ARCHITECTURE.md CONTEXT_MAP.md SECURITY.md TRD.md UBIQUITOUS_LANGUAGE.md \
OPERABILITY.md API_CONFIG_CONTRACT.md docs/product-technical-gap-baseline.md \
docs/doctoring/TRACEABILITY.md CHANGELOG.md
printf '%s\n' '=== Current documentation statements ==='
rg -n -i -C 5 \
-e 'pingora' \
-e 'HttpServerOptions' \
-e 'MAX_HEADERS' \
-e 'INIT_HEADER_BUF_SIZE' \
-e 'MAX_HEADER_SIZE' \
-e 'request_filter' \
-e 'max_header_list_size' \
-e 'HTTP/1|HTTP/2' \
-e 'request-header parser admission' \
-e 'max_upstream_response_body_ms' \
-e 'response-body lifetime' \
-e 'four workers|4 workers|16 VU|1600|Connection: close|1 ms|p95|production' \
-e '`#43`|`#993`|APA|traceability' \
ARCHITECTURE.md CONTEXT_MAP.md SECURITY.md TRD.md UBIQUITOUS_LANGUAGE.md \
OPERABILITY.md API_CONFIG_CONTRACT.md docs/product-technical-gap-baseline.md \
docs/doctoring/TRACEABILITY.md CHANGELOG.md || true
printf '%s\n' '=== Dependency pin and source candidates ==='
rg -n -C 3 'pingora|09696b51bc59315353d96686355861604d0bb48c' Cargo.toml Cargo.lock 2>/dev/null || true
fd -HI -t f . -E .git -E node_modules -E target \
| grep -E '(^|/)(runtime_isolation|migration_admin|migration_proxy|gateway_proxy)\.rs$|pg_erd|run_pg_erd_capacity|pg-erd-capacity' \
| sortLength of output: 202858 🏁 Script executed: #!/bin/bash
set -euo pipefail
sha='09696b51bc59315353d96686355861604d0bb48c'
repo='cloudflare/pingora'
fetch_source() {
gh api "repos/${repo}/contents/$1?ref=${sha}" --jq '.content' | base64 -d
}
show_matches() {
local pattern="$1"
awk -v pattern="$pattern" '
{ lines[NR] = $0 }
$0 ~ pattern {
first = NR - 12; if (first < 1) first = 1
last = NR + 18
for (i = first; i <= last; i++) {
if (!printed[i]++) printf "%6d %s\n", i, lines[i]
}
print "------"
}'
}
printf '%s\n' '=== Supplier issue status ==='
gh api "repos/${repo}/issues/993" \
--jq '{number, state, title, html_url, created_at, updated_at, user: {login: .user.login, name: .user.name}}'
printf '%s\n' '=== Pinned HTTP/1 parser limits and parse sequence ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| show_matches 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE'
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| show_matches 'read_request|MAX_HEADER_SIZE|RequestHeader|INIT_HEADER_BUF_SIZE'
printf '%s\n' '=== Pinned public server options and HTTP/2 defaults ==='
fetch_source 'pingora-core/src/apps/mod.rs' \
| show_matches 'struct HttpServerOptions|HttpServerOptions|max_|header'
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| show_matches 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options'
printf '%s\n' '=== Pinned proxy callback declaration and call context ==='
fetch_source 'pingora-proxy/src/proxy_trait.rs' | show_matches 'request_filter'
fetch_source 'pingora-proxy/src/lib.rs' | show_matches 'request_filter'
printf '%s\n' '=== Local source maps ==='
ast-grep outline src/migration_admin.rs --items all
ast-grep outline src/runtime_isolation.rs --items all
ast-grep outline src/migration_proxy.rs --items all
printf '%s\n' '=== Local configuration and response-lifetime implementation ==='
rg -n -C 10 \
-e 'max_upstream_response_body_ms' \
-e 'version' \
-e 'build_proxy' \
src/migration_admin.rs src/runtime_isolation.rs src/migration_proxy.rs
printf '%s\n' '=== Bounded-origin capacity contract ==='
sed -n '1,240p' tests/load/run_pg_erd_capacity.sh
sed -n '1,160p' tests/load/pg_erd_gateway_capacity.js
sed -n '1,260p' .github/workflows/pg-erd-capacity.yml
printf '%s\n' '=== Exact later changes with line numbers ==='
git diff --unified=30 924f5a7b8cf60712348beb11c846d4288c78177e 926253f4b72d764a74e8cb32c639e822234f61b6 -- \
OPERABILITY.md API_CONFIG_CONTRACT.md docs/product-technical-gap-baseline.md CHANGELOG.md \
| catLength of output: 185343
I reviewed the delta after I found no blocking issues in the requested scope.
✅ Action performedReview finished.
|
|
CodeRabbit's current-head source/document review is clean, but the pre-merge Linked Issues warning was valid metadata feedback: this documentation-only projection must not imply that it implements or closes the runtime supplier gap. I removed the leading |
|
@coderabbitai review Please review current exact head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='0145c455f5010bcff2af96e2293530c4fdf35aa4'
head='56138812e7527fadc7264bb4792a0b782e9cf4e7'
supplier_sha='09696b51bc59315353d96686355861604d0bb48c'
supplier_repo='cloudflare/pingora'
git cat-file -e "${base}^{commit}"
git cat-file -e "${head}^{commit}"
printf '%s\n' '=== Repository guidance ==='
fd -HI -t f '^(AGENTS|CONTRIBUTING|CODING|REVIEW).*|^\.coderabbit\.ya?ml$' . \
-E .git -E node_modules -E target | sort | while IFS= read -r file; do
echo "--- ${file}"
sed -n '1,260p' "$file"
done
printf '%s\n' '=== Exact change range ==='
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"
git diff --stat "$base" "$head"
git diff --unified=100 "$base" "$head" -- \
TRD.md THREAT_MODEL.md docs/doctoring/TRACEABILITY.md \
docs/product-technical-gap-baseline.md
printf '%s\n' '=== Current targeted documentation statements ==='
rg -n -i -C 7 \
-e 'HTTP/1|HTTP/2|H1|H2' \
-e 'parser|admission|byte|count|header lifetime|whole.request.header' \
-e 'response.header|upstream.*header|header.*upstream' \
-e 'Pingora|HttpServerOptions|read_request|request_filter' \
-e 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE|max_header_list_size' \
-e 'release|blocker|close[sd]?|implement|ship|production' \
-e '`#43`|`#45`|`#40`|`#993`|`#447`|`#992`' \
TRD.md THREAT_MODEL.md docs/doctoring/TRACEABILITY.md \
docs/product-technical-gap-baseline.md || true
printf '%s\n' '=== Local dependency pin and related source map ==='
rg -n -C 3 'pingora|09696b51bc59315353d96686355861604d0bb48c' Cargo.toml Cargo.lock 2>/dev/null || true
fd -HI -t f -E .git -E node_modules -E target \
| grep -E '(^|/)(runtime_isolation|migration_admin|migration_proxy|gateway_proxy)\.rs$' \
| sort || true
rg -n -i -C 6 \
-e 'header.*deadline|header.*timeout|max_.*header' \
-e 'upstream.*header|response.*header' \
-e 'request_filter|read_request' \
-g '!target/**' -g '!node_modules/**' src tests 2>/dev/null || true
printf '%s\n' '=== Current PR metadata ==='
gh pr view 44 --json number,headRefOid,baseRefOid,isDraft,title,body,closingIssuesReferences \
--jq '{number, headRefOid, baseRefOid, isDraft, title, body, closingIssuesReferences: [.closingIssuesReferences[] | {number, repository: .repository.nameWithOwner, state}]}'
printf '%s\n' '=== Project and supplier issue metadata ==='
for spec in \
'ContextualWisdomLab/pingora-gateway 43' \
'ContextualWisdomLab/pingora-gateway 45' \
'ContextualWisdomLab/pingora-gateway 40' \
'cloudflare/pingora 993' \
'cloudflare/pingora 447' \
'cloudflare/pingora 992'
do
set -- $spec
repo="$1"
number="$2"
gh api "repos/${repo}/issues/${number}" \
--jq '{repository: "'"$repo"'", number, state, title, html_url, pull_request}'
done
fetch_source() {
gh api "repos/${supplier_repo}/contents/$1?ref=${supplier_sha}" --jq '.content' | base64 -d
}
printf '%s\n' '=== Pinned HTTP/1 parser limits and parse flow ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| nl -ba | grep -E -C 6 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE' || true
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| nl -ba | grep -E -C 14 'read_request|MAX_HEADER_SIZE|RequestHeader|parse' || true
printf '%s\n' '=== Pinned public server options and HTTP/2 options ==='
fetch_source 'pingora-core/src/apps/mod.rs' \
| nl -ba | grep -E -C 10 'struct HttpServerOptions|HttpServerOptions|header|max_' || true
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| nl -ba | grep -E -C 10 'max_header_list_size|H2Options|header' || true
printf '%s\n' '=== Pinned upstream response-header handling candidates ==='
for path in \
pingora-proxy/src/proxy_trait.rs \
pingora-proxy/src/lib.rs \
pingora-core/src/protocols/http/v1/client.rs
do
echo "--- ${path}"
fetch_source "$path" | nl -ba \
| grep -E -i -C 10 'response_filter|response.*header|read_response|header.*timeout' || true
doneLength of output: 204452 🏁 Script executed: #!/bin/bash
set -euo pipefail
base='0145c455f5010bcff2af96e2293530c4fdf35aa4'
head='56138812e7527fadc7264bb4792a0b782e9cf4e7'
supplier_sha='09696b51bc59315353d96686355861604d0bb48c'
supplier_repo='cloudflare/pingora'
numbered() {
awk '{ printf "%6d %s\n", NR, $0 }'
}
fetch_source() {
gh api "repos/${supplier_repo}/contents/$1?ref=${supplier_sha}" --jq '.content' | base64 -d
}
printf '%s\n' '=== Exact target diff with line numbers ==='
git diff --unified=50 "$base" "$head" -- \
TRD.md THREAT_MODEL.md docs/doctoring/TRACEABILITY.md \
docs/product-technical-gap-baseline.md \
| numbered
printf '%s\n' '=== Exact changed-line locations ==='
git diff --unified=0 "$base" "$head" -- \
TRD.md THREAT_MODEL.md docs/doctoring/TRACEABILITY.md \
docs/product-technical-gap-baseline.md \
| grep -E '^(\+\+\+|@@|\+[^+])' || true
printf '%s\n' '=== Pinned HTTP/1 constants and read loop ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| numbered | grep -E -C 8 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE' || true
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| numbered | grep -E -C 16 'read_request|read_timeout|MAX_HEADER_SIZE|RequestHeader|parse' || true
printf '%s\n' '=== Pinned server default timeout configuration ==='
fetch_source 'pingora-core/src/server/configuration/mod.rs' \
| numbered | grep -E -i -C 10 'read_timeout|timeout' || true
fetch_source 'pingora-core/src/apps/mod.rs' \
| numbered | grep -E -i -C 12 'struct HttpServerOptions|read_timeout|header|timeout' || true
printf '%s\n' '=== Pinned proxy callback and response-header flow ==='
fetch_source 'pingora-proxy/src/lib.rs' \
| numbered | grep -E -i -C 14 'read_response|response_filter|upstream_response_filter|request_filter' || true
fetch_source 'pingora-proxy/src/proxy_h1.rs' \
| numbered | grep -E -i -C 14 'read_response|read_timeout|response.*header|header' || true
fetch_source 'pingora-core/src/protocols/http/v1/client.rs' \
| numbered | grep -E -i -C 14 'read_response|read_timeout|response.*header|header' || true
printf '%s\n' '=== HTTP/2 distinction ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| numbered | grep -E -C 10 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options' || true
printf '%s\n' '=== Supplier issue descriptions ==='
for issue in 447 992 993; do
gh api "repos/cloudflare/pingora/issues/${issue}" \
--jq '{number, state, title, body}'
done
printf '%s\n' '=== Contradictory completion language in requested documents ==='
rg -n -i -C 3 \
'close[sd]?|resolved|implemented|complete[sd]?|release.ready|release blocker|production SLO|parity' \
TRD.md THREAT_MODEL.md docs/doctoring/TRACEABILITY.md \
docs/product-technical-gap-baseline.md || trueLength of output: 174571 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '=== cloudflare/pingora#447 complete issue discussion ==='
gh api 'repos/cloudflare/pingora/issues/447/comments?per_page=100' \
--paginate \
--jq '.[] | {user: .user.login, created_at, updated_at, body}'
printf '%s\n' '=== cloudflare/pingora#447 timeline event summaries ==='
gh api 'repos/cloudflare/pingora/issues/447/timeline?per_page=100' \
--paginate \
-H 'Accept: application/vnd.github+json' \
--jq '.[] | select(.event == "commented" or .event == "cross-referenced" or .event == "referenced") | {event, created_at, actor: .actor.login, source: (.source.issue.html_url // null)}' || trueLength of output: 9523
I found no blocking issues in the requested scope.
|
|
Fresh parent-authority check: current #42 has advanced to exact Do not replay the historical 23-commit tree or destructively rebase. Keep the 12-file documentation projection intact. After #42 reaches unchanged exact-head hosted + current-range technical closure, ordinary/non-force succession must start from final #42 and semantically reapply only this docs delta, then reacquire exact-head CI/Supply Chain/capacity/review evidence. No production source or product-domain authority is changed by this note. |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-current technical review for a5747c28310cb28703c99a1b02583ae2c0a2614e..c026e1c8f419c6c5035a36518c3d482dfe7ff8a8.
I re-read the effective 12-document diff and fresh-checked the pinned supplier source at cloudflare/pingora@09696b51bc59315353d96686355861604d0bb48c. The documented HTTP/1 constants are exact (MAX_HEADERS=256, INIT_HEADER_BUF_SIZE=4096, MAX_HEADER_SIZE=1048575); HttpSession::new() defaults H1 read_timeout to 60 s and read_request() can loop after successful partial reads; current HttpServerOptions has no H1 header byte/count or monotonic whole-header deadline; H2 separately defaults to a 64 KiB decoded header-list limit and 100 concurrent streams. Supplier #993, #447, and #992 remain open and correspond to the three distinct parser-admission/downstream-header-lifetime/upstream-header-lifetime paths described here.
The ordinary/non-force parent repair preserves the historical #44 child, adopts final #42 as an additional parent with the final #42 tree as the resolution tree, and semantically reapplies only the intended documentation delta. Fresh compare is behind=0 with merge base exactly final #42. No production Rust, workflow semantics, routing, retry, product auth/business logic, Keyverse, Wardnet, or EgressWeave authority moves in the effective diff.
No new actionable source/documentation/DDD finding in this exact changed range. This COMMENT is technical evidence only; it is not an independent governance APPROVED, and final #42 hosted receipts do not transfer to this changed head.
|
@coderabbitai review Please review the exact current range |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='a5747c28310cb28703c99a1b02583ae2c0a2614e'
head='c026e1c8f419c6c5035a36518c3d482dfe7ff8a8'
git cat-file -e "${base}^{commit}"
git cat-file -e "${head}^{commit}"
printf '%s\n' '=== Repository guidance ==='
fd -HI -t f '^(AGENTS|CONTRIBUTING|CODING|REVIEW).*|^\.coderabbit\.ya?ml$' . \
-E .git -E node_modules -E target | sort | while IFS= read -r file; do
echo "--- ${file}"
sed -n '1,260p' "$file"
done
printf '%s\n' '=== Exact range validation and files ==='
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"
git diff --stat "$base" "$head"
printf '%s\n' '=== Exact documentation diff ==='
git diff --unified=80 "$base" "$head" -- \
TRD.md THREAT_MODEL.md SECURITY.md OPERABILITY.md TEST_STRATEGY.md \
docs/doctoring/TRACEABILITY.md docs/product-technical-gap-baseline.md \
CHANGELOG.md API_CONFIG_CONTRACT.md ARCHITECTURE.md CONTEXT_MAP.md \
UBIQUITOUS_LANGUAGE.md
printf '%s\n' '=== Current relevant documentation passages ==='
rg -n -i -C 6 \
-e 'HTTP/1|HTTP/2|H1|H2' \
-e 'parser.*admission|byte.*count|whole.request.header|request.header.*lifetime' \
-e 'upstream.*response.header|response.header.*lifetime' \
-e 'request_filter|early_request_filter|front.proxy|nginx|traefik|fork|GREEN|RED' \
-e 'HttpServerOptions|MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE|max_header_list_size' \
-e 'release|cutover|close[sd]?|resolv|implement|production|SLO' \
-e '`#43`|`#45`|`#40`|`#993`|`#447`|`#992`' \
TRD.md THREAT_MODEL.md SECURITY.md OPERABILITY.md TEST_STRATEGY.md \
docs/doctoring/TRACEABILITY.md docs/product-technical-gap-baseline.md \
CHANGELOG.md API_CONFIG_CONTRACT.md ARCHITECTURE.md CONTEXT_MAP.md \
UBIQUITOUS_LANGUAGE.md || true
printf '%s\n' '=== Pin and local implementation references ==='
rg -n -C 3 'pingora|09696b51bc59315353d96686355861604d0bb48c' Cargo.toml Cargo.lock 2>/dev/null || true
rg -n -i -C 5 \
-e 'request_filter|early_request_filter|read_request' \
-e 'response.*header|header.*timeout|read_timeout' \
-g '!target/**' -g '!node_modules/**' src tests 2>/dev/null || true
printf '%s\n' '=== PR metadata ==='
gh pr view 44 --json number,headRefOid,baseRefOid,isDraft,title,body,closingIssuesReferences \
--jq '{number, headRefOid, baseRefOid, isDraft, title, body, closingIssuesReferences: [.closingIssuesReferences[] | {number, repository: .repository.nameWithOwner, state}]}'Length of output: 202865 🏁 Script executed: #!/bin/bash
set -euo pipefail
supplier_repo='cloudflare/pingora'
supplier_sha='09696b51bc59315353d96686355861604d0bb48c'
fetch_source() {
gh api "repos/${supplier_repo}/contents/$1?ref=${supplier_sha}" --jq '.content' | base64 -d
}
show_matches() {
awk -v expression="$1" '
{ lines[NR] = $0 }
$0 ~ expression {
first = NR - 14
if (first < 1) first = 1
last = NR + 18
for (i = first; i <= last; i++) {
if (!printed[i]++) printf "%6d %s\n", i, lines[i]
}
print "------"
}'
}
printf '%s\n' '=== Project and supplier issue metadata ==='
for item in \
'ContextualWisdomLab/pingora-gateway 43' \
'ContextualWisdomLab/pingora-gateway 45' \
'ContextualWisdomLab/pingora-gateway 40' \
'cloudflare/pingora 993' \
'cloudflare/pingora 447' \
'cloudflare/pingora 992'
do
set -- $item
gh api "repos/$1/issues/$2" \
--jq '{repository: "'"$1"'", number, state, title, html_url, pull_request}'
done
printf '%s\n' '=== HTTP/1 parser constants and read flow ==='
fetch_source 'pingora-core/src/protocols/http/v1/common.rs' \
| show_matches 'MAX_HEADERS|INIT_HEADER_BUF_SIZE|MAX_HEADER_SIZE'
fetch_source 'pingora-core/src/protocols/http/v1/server.rs' \
| show_matches 'read_request|MAX_HEADER_SIZE|RequestHeader|read_timeout'
printf '%s\n' '=== Public HTTP server options ==='
fetch_source 'pingora-core/src/apps/mod.rs' \
| show_matches 'struct HttpServerOptions|HttpServerOptions|header|max_|timeout'
printf '%s\n' '=== HTTP/2 accounting ==='
fetch_source 'pingora-core/src/protocols/http/v2/server.rs' \
| show_matches 'default_h2_options|max_header_list_size|max_concurrent_streams|H2Options'
printf '%s\n' '=== Callback order and upstream response-header reads ==='
fetch_source 'pingora-proxy/src/proxy_trait.rs' \
| show_matches 'early_request_filter|request_filter'
fetch_source 'pingora-proxy/src/lib.rs' \
| show_matches 'early_request_filter|request_filter|read_response|response_filter'
fetch_source 'pingora-proxy/src/proxy_h1.rs' \
| show_matches 'read_response|read_timeout|response.*header'
fetch_source 'pingora-core/src/protocols/http/v1/client.rs' \
| show_matches 'read_response|read_timeout|response.*header'
printf '%s\n' '=== APA and traceability reference entries ==='
rg -n -C 4 \
-e 'cloudflare/pingora#993' -e 'cloudflare/pingora#447' -e 'cloudflare/pingora#992' \
-e 'HttpServerOptions' -e 'read_request' -e 'read_timeout' \
docs/doctoring/TRACEABILITY.md || trueLength of output: 118365
I found one actionable evidence-integrity finding.
I found no other actionable findings in the requested scope.
You are interacting with an AI system. |
|
CodeRabbit의 exact-range finding을 metadata repair로 반영했습니다. #44는 다시 Draft이며 exact head는 그대로 |
Documentation projection only. Runtime implementation remains tracked separately by
pingora-gateway#43(downstream HTTP/1 parser byte/count admission),pingora-gateway#45(downstream HTTP/1 whole-request-header lifetime), andpingora-gateway#40(upstream response-header lifetime). Supplier capability/disposition remains tracked bycloudflare/pingora#993,cloudflare/pingora#447, andcloudflare/pingora#992. This PR intentionally does not resolve or close any of those issues.Parent repair completed without force-push
Final #42 is exact
a5747c28310cb28703c99a1b02583ae2c0a2614e. The stale #44 head504086addfddf48afdbf1190a448ce40e356e9d0was preserved as historical first-parent ancestry. Ordinary merge commit46daf30755087db6e10ee231e5f341e1ce5bc6c7adopted final #42 as the additional parent while using final #42's tree exactly as the resolution tree; no stale child documentation blob was replayed wholesale and no destructive rebase/force-push occurred.The still-valid #44 documentation delta was then semantically reapplied on top of that parent-correct tree. Final exact head is
c026e1c8f419c6c5035a36518c3d482dfe7ff8a8. Fresh compare against final #42 isahead=36,behind=0, with merge base exactlya5747c28310cb28703c99a1b02583ae2c0a2614e. GitHub reports this Draft PR mergeable. Final #42's CI/Supply Chain/capacity/review receipts were not transferred to this changed documentation head.Valid documentation delta
The projection keeps the three supplier-bound header/resource gaps distinct and prevents a callback-only or speculative Admin Config field from being credited as parser/lifetime closure.
cloudflare/pingora#993owns downstream HTTP/1 parser-phase byte/count admission. Pinned Pingora09696b51bc59315353d96686355861604d0bb48chas finite fixed parser ceilings but no supported operator-controlled H1 parser byte/count budget through the current public server/composition API. Callback-only 431 is not pre-allocation admission; HTTP/2 decoded-header-list accounting is a separate protocol contract.cloudflare/pingora#447owns downstream HTTP/1 whole-request-header lifetime. A relative per-read timeout does not prove a whole-header lifetime when successful partial reads can continue; application callbacks occur after request-header parsing and cannot supply that pre-complete-header bound.cloudflare/pingora#992owns upstream incomplete response-header lifetime. It remains separate from pg-erd v2's monotonic response-body progress lifetime.The effective diff against final #42 is exactly 12 documentation paths:
API_CONFIG_CONTRACT.md,ARCHITECTURE.md,CHANGELOG.md,CONTEXT_MAP.md,OPERABILITY.md,SECURITY.md,TEST_STRATEGY.md,THREAT_MODEL.md,TRD.md,UBIQUITOUS_LANGUAGE.md,docs/doctoring/TRACEABILITY.md, anddocs/product-technical-gap-baseline.md. Production Rust, workflow semantics, routing, retry, product auth/business logic, Keyverse, Wardnet, and EgressWeave authority are unchanged.Exact-head technical closure
The unchanged final exact head
c026e1c8f419c6c5035a36518c3d482dfe7ff8a8independently reacquired its applicable evidence after the ancestry/documentation movement:34286468359:test,oci-runtime, andload-contractare terminal GREEN. The test lane passed exact checkout, Rust 1.98.0 formatting/compile/test, strict lint, warnings-denied public rustdoc, pinned coverage tooling, complete owned-production coverage enforcement, and resolved-lock verification. OCI rebuilt both admitted images and exercised non-root/read-only least-privilege runtime; load rebuilt exact gateway/Rust origins and passed generic plus routed pg-erd traffic.34286468411: committed dependency audit, both admitted candidate-image builds, SPDX SBOM, both image scans, exact-source binding, and evidence upload are terminal GREEN.34286468507: exact Rust 1.98.1 candidate/origins, one-worker serialization self-check, then 16-VU/1600-iteration measurement are terminal GREEN. Artifact10079870584, digestsha256:c9c578aded6d49cfb23b14f27671dffcdaad94bc55aca94148642e784e7c35b5, records 1600 requests, 3200/3200 checks, zero HTTP request failures, aggregate p954.01235475 ms, backend p954.04371395 ms/ 800, and frontend p953.96607155 ms/ 800. This is controlled-loopback origin-capacity/connection-churn evidence, not production/TLS/WAN SLO credit.c026e1c8...found one metadata/evidence-integrity defect only: the PR had temporarily been marked Ready while its body still required Draft. The PR was converted back to Draft without source/docs movement; CodeRabbit reported no other actionable finding in the requested range. Technical comments are not independent governanceAPPROVEDcredit.Documentation successor #47 is already ordinarily/non-force based on this exact final #44 head and has independently reacquired its own exact-head technical/hosted evidence. Keep #44 Draft to prevent premature stacked-branch integration while the supplier/runtime and protected-promotion roots remain unresolved.
No protected merge, release readiness, parity, shadow/canary, rollback, cutover, or Nginx/OpenResty removal credit is claimed.