From 01b9a90f4526369fd9f17f693066ce4fa8c3e9d4 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Mon, 12 Oct 2026 19:18:38 +0800 Subject: [PATCH] =?UTF-8?q?docs(net):=20=E5=90=8C=E6=AD=A5=20docs/?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=20=E4=B9=8B=E5=A4=96=E6=AE=8B=E7=95=99?= =?UTF-8?q?=E6=97=A7=E5=87=BD=E6=95=B0=E5=90=8D=EF=BC=88=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=20+=20=E7=94=9F=E6=88=90=E5=9B=BE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs/网络/ 主体已在 1a17d73 更新。自查发现两处「现状性」引用 仍用旧函数名(历史记录类保持原样,不改): - docs/测试说明/链路延迟测试说明.md §8 D10 排障行: net_relisten_try/retry_tick → net_listener_try/retry_tick - tools/arch_diagram/gen_net_pending_svg.py 主循环标签 net_relisten_retry_tick() → net_listener_retry_tick(),并重跑 生成 docs/images/Net层阻塞模型.svg(该图被 Net层阻塞模型架构设计.md 内嵌) --- docs/images/Net层阻塞模型.svg | 2 +- docs/测试说明/链路延迟测试说明.md | 2 +- tools/arch_diagram/gen_net_pending_svg.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/images/Net层阻塞模型.svg b/docs/images/Net层阻塞模型.svg index fc2df1d5..ca8de14e 100644 --- a/docs/images/Net层阻塞模型.svg +++ b/docs/images/Net层阻塞模型.svg @@ -50,7 +50,7 @@ net_pending_tick() 了结挂起 -net_relisten_retry_tick() +net_listener_retry_tick() 重试对账 排空消息队列 diff --git a/docs/测试说明/链路延迟测试说明.md b/docs/测试说明/链路延迟测试说明.md index 98e295a7..7f0e587e 100644 --- a/docs/测试说明/链路延迟测试说明.md +++ b/docs/测试说明/链路延迟测试说明.md @@ -663,7 +663,7 @@ sock4 auto-relisten ok / relisten retry ok ← 监听器随后自行恢复 | **会话跑完一段后无限循环、peer 空等 300s** | **D16**:Phase 13 状态机迁移目标错 | 核对顺序 L5→L3→L10→L6→L7→DONE(§8 D16) | | **`[LAT]` 段行缺失/截断、wait-idle 判不出空闲** | **D12-b**:热路径日志洪水 | 删除 net 热路径逐调用日志(§8 D12-b) | | **开机日志连续丢行**(含必检标记 `net init: OK` 等)但系统健康 | **日志并发竞态**:多任务并发 `printf` → 非重入 `fputc`/`HAL_UART_Transmit` 丢整行、UART 状态短暂卡住(2026-09-22 台架实证:boot 时 testTask 启动行与 netTask 日志并发 → 连续 4 行丢失、~2s 后自恢复) | 必现证据行采用"静默采集 + 延迟到安静窗口打印"模式(范例:P0-a 验收行曾按此模式实装,验收完成后探针已移除);根治 = S8 日志非阻塞/串行化(§10.2) | -| **`relisten` 段 FAIL、断线固定 ~588ms** | **D10** 回归(退回 `osDelay(500)`) | 核对 `net_relisten_try`/`net_relisten_retry_tick` 非阻塞重试在位(§8 D10) | +| **`relisten` 段 FAIL、断线固定 ~588ms** | **D10** 回归(退回 `osDelay(500)`) | 核对 `net_listener_try`/`net_listener_retry_tick` 非阻塞重试在位(§8 D10) | | **远端显示整帧卡住十几秒后自恢复** | **E-02** 回归 | 核对 L3 pending 在位:`net_recv_locked` 阻塞分支登记 pending(哨兵 `NET_PENDING_REGISTERED`)+ `net_pending_tick` 在主循环 + 调用方剩余预算循环(lftpd/timeSync)(§8.3 要点 4) | | **INIT 应答帧字节数字段恒为 0** | **D17** 回归 | 核对 `remo_send_init` 发满 8B(§8 D17) | | **开机首个 FTP 会话第 2 个数据连接 425** | **D20**(已定位未修,§8.2) | 复现:`test/host/ftp_regression.py`(复位开边界);现场规避:客户端重试 425(瞬态 4xx);根治方向:数据 Socket 轮换 | diff --git a/tools/arch_diagram/gen_net_pending_svg.py b/tools/arch_diagram/gen_net_pending_svg.py index 6bff92bf..3387fdb9 100644 --- a/tools/arch_diagram/gen_net_pending_svg.py +++ b/tools/arch_diagram/gen_net_pending_svg.py @@ -75,7 +75,7 @@ FAST_PATH = ("立即 SPI 读出", LOOP_STEPS = [ ("net_poll()", "刷新 readable", C_CHIP), ("net_pending_tick()", "了结挂起", C_TICK), - ("net_relisten_retry_tick()", "重试对账", C_ACTOR), + ("net_listener_retry_tick()", "重试对账", C_ACTOR), ("排空消息队列", "服务所有消费者", "#64748b"), ]