Skip to content

fix(smb): 慢链路下 SMB 库不再 7 秒超时,本页元数据改为并发读取 - #181

Merged
HicirTech merged 2 commits into
mainfrom
Fix--inventory-over-tunnel
Oct 9, 2026
Merged

HicirTech merged 2 commits into
mainfrom
Fix--inventory-over-tunnel

Conversation

@HicirTech

@HicirTech HicirTech commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner
  • SMB 库读一页时,50 册的元数据改在库存线程池上并发读取,线程数跟随「元数据并发」设置,结果仍按原来的顺序
  • 7 秒拆成两段:列目录仍要在 7 秒内返回;读本页改为连续 7 秒没有任何一册读完才算失败,链路慢但一直有进展时不再报「7 秒内未响应」
  • 超时后取消本页还没读完的元数据,不再在后台接着读
  • 非日期排序(一次读完整个库)的行为不变;错误文案与诊断日志拆到 fix(smb): 连不上共享时,错误文案和日志说不出是哪一类原因 #180

验证:LXC 上 CI 同款构建通过,单测 412 个 0 失败;新增 4 个测试各做过变异验证(串行、整页总时限、超时不取消、按完成先后返回),都被抓到。平板(SM-X926B,Android 16,调试版,147 册,元数据并发 64)冷启动进 SMB 库,基线与修复交替跑:手机热点 + WireGuard(往返 100–420 ms)下基线 7/7 次在 7 秒时超时、中位只读完 5 册,修复 7/7 次读完 50 册,列目录加读本页中位 2.2 s;家里 Wi-Fi(往返约 6 ms)下中位 1.9 s → 0.3 s。并发读取期间同一连接上的其他读取要排队,用只读探针按完全重叠的最坏情况测(每轮三种情况紧挨着跑,逐轮比较):局域网下比起原来的串行读取,50 张封面每轮多 27–71 ms(中位 42 ms),一张阅读页没有一致的差异,只持续约 0.2 s;隧道下一张阅读页同时并发读取时多 0.64 s、同时串行读取时多 0.75 s(中位,相对单独读),封面的差异被链路波动淹没(同样单独读一批封面,6 轮从 2.4 s 到 8.0 s)。

未验证:默认并发 6 下没有实测;写入网络存储的下载与并发读取同时进行的影响(会写进真实的库)。

Closes #163

@HicirTech
HicirTech merged commit 4c16519 into main Oct 9, 2026
1 check passed
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.

fix(smb): 移动数据 + WireGuard VPN 下打不开 SMB 共享

1 participant