fix(ci): Rust clippy 恒红——proxy.rs:155 ErrorKind::Other 触发 -D warnings,阻塞 main 与全部 14 个 PR
I maintainer di solito rispondono entro 13 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 85/100
Direzione di ricerca
Inizia da rust/src/proxy.rs:155-158, dove l’issue indica l’avviso di clippy, e controlla il comando Lint in .github/workflows/test.yml:84. Esegui cd rust && cargo clippy --all-targets -- -D warnings e cd rust && cargo test; il lavoro è completato quando entrambi passano e il job CI di Rust diventa verde.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无
基线 HEAD = d35ed884。
Summary
-
rust/src/proxy.rs:155-158:CONNECT 出站代理代码用std::io::Error::new(std::io::ErrorKind::Other, e),被 clippy 判clippy::io_other_error(style 组,warn 级):parse_connect_response(&head).map_err(|e| std::io::Error::new( std::io::ErrorKind::Other, e, ))?; -
.github/workflows/test.yml:84的 Lint 步是cargo clippy --all-targets -- -D warnings,warn 升 error → 退出码 101 → Rust job 必红(同 job 的cargo test步:81本身是绿的,红只出在 Lint)。 -
引入点 =
13d917a(2026-10-01 13:49Z,feat(rust): 客户端出站支持 HTTP CONNECT 代理(0.6.0);git blame -L 155,158 rust/src/proxy.rs四行全部指向该提交)。 -
时间线(main 上的 test workflow):最后一次绿 =
0846ed19(2026-09-30T11:41Z);此后逐次全红 =020dec36(2026-10-04T14:22Z,首个红灯)→cb74c8b4(10-07T17:59Z)→9711b1a6(10-08T11:17Z)→eab5b1a6(10-08T11:50Z)→d35ed884(10-08T11:53Z,run 37773047527)。首红滞后到 10-04 只是因为 09-30 与 10-04 之间 main 上没有触发 test workflow(13d917a已领先上一个绿点 29 个提交、且已是020dec36的祖先),不是当时绿过。各次失败点逐字相同:--> src/proxy.rs:155:47+Process completed with exit code 101。 -
不是工具链 1.99 新增 lint:本机 rustc/clippy
1.98.1复现同一条 —— 在仓内cd rust && cargo clippy --all-targets -- -D warnings得到error: this can bestd::io::Error::other(_)``(clippy 1.98.0 文档链接)→ 101。CI 侧 toolchain 为 rustc 1.99.0(dtolnay/rust-toolchain@stable日志:`stable-x86_64-unknown-linux-gnu unchanged - rustc 1.99.0 (b940084d7 2026-09-28)`)。即新代码踩了既存 lint,1.99 只是同为命中版本。 -
影响面不止 main:全部 14 个 open PR(dependabot #5-#19、#25 等,含只改
typescript/lockfile 的)都因同一个 Rust job 红而卡住合入,例:run 37773298226(PR #18,仅/typescriptundici 升级)失败日志同样是src/proxy.rs:155:47。 -
命中处唯一:
grep -rn 'ErrorKind::Other' rust/src→ 只有rust/src/proxy.rs:156。
影响
main 与所有 PR 的 CI 门禁确定性恒红(非 flaky):dependabot 依赖升级全部积压,人工改动的 PR 也无法区分「自己的问题」与「既存红」,等于交付管线被一行 lint 卡死。
建议
改为 std::io::Error::other:
parse_connect_response(&head).map_err(std::io::Error::other)?;
验收条件(可执行、可断言):
cd rust && cargo clippy --all-targets -- -D warnings退出码 0 —— 已在临时副本(/tmp/tunely-verify,仅改此行)用本机 clippy 1.98.1 实跑:Finished dev profile,无任何告警;cd rust && cargo test全绿 —— 同一临时副本实跑通过:lib 单测 86、embed_handler6、integration10、proxy_integration4(含 CONNECT 代理路径)、wire_conformance8、doc-test 1,合计 115 passed / 0 failed;- 改动推上 main 后,test workflow 的 Rust job 转绿(
Lint步通过)。
边界
- 本单只修这一处 lint 命中,不处理「
dtolnay/rust-toolchain@stable浮动 → 未来新 lint 再次打红 CI」的根因(建议另单:加rust-toolchain.toml固定版本,或把-D warnings收敛为定向 lint)。历史同类:143ddb71「折叠嵌套 if let——修 CI clippy --all-target」也是被浮动 stable 打到。 - 不处理 Python job 的非致命噪声:
##[error] RuntimeError: Event loop is closed(aiosqlite_connection_worker_thread在事件循环关闭后回调,pytestPytestUnhandledThreadExceptionWarning;该 job 结论仍是 success,run 37663404002)。与本单无因果关系,如需要另行提报。
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 0
- Merge medio
- 12g 4h
- PR unite (30g)
- 1
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jeffkit/tunely
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
I maintainer di solito rispondono entro 13 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
jeffkit/tunely#24 · 3 commenti ·
I maintainer di solito rispondono entro 13 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
jeffkit/tunely#22 · 3 commenti ·
I maintainer di solito rispondono entro 13 giorni
-
fix(release): 发布链 fail-open(缺 secret 时 Actions 绿但什么都没发)+ PyPI 上的 0.10.0 恰是 /forward 无鉴权的安全缺口版本Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 34/100
jeffkit/tunely#23 · 3 commenti ·
I maintainer di solito rispondono entro 13 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
jeffkit/tunely#21 · 3 commenti ·
I maintainer di solito rispondono entro 13 giorni
Tutte le issue di jeffkit/tunely
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
gramaziokohler/compas_timber#870 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
autowarefoundation/autoware_carla_scenario#500 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue priority: low size: XS testing
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
cubrid-lab/cubrid-mcp-server#385 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue priority: low size: S testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
cubrid-lab/cubrid-cookbook-python#447 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100