lbl
|
9993f9c894
|
fix(quic): TCP 解析失败不再静默丢包
open_quic_client 分支下,非分片 TCP 包若 TcpPacket 解析失败,
原实现 return true 表示"已处理",实际什么都没做——包被静默丢弃,
与文件中非 quic_client 路径(解析失败落到 return false)语义不一致。
改为 return false,把包交还给调用方的其他转发路径。
注:outbound() 依赖真实 IpStack,无法低成本构造单测;clippy 通过。
|
2026-08-21 02:27:46 +08:00 |
|
lbl
|
8ecbfca939
|
fix(quic): 入站 channel 满时丢包而非阻塞整条接收循环
QuicDataInbound::send 此前用异步 send 等待 channel 容量,消费端
(QUIC endpoint 驱动)处理不过来时,256 容量的 channel 一满就
阻塞整条接收循环,所有对端的入站流量被头部阻塞。
改为 try_send:满则丢包并告警(IP 包语义下可接受),关闭才报错。
测试:test_send_drops_when_channel_full(满时不阻塞)、
test_send_errors_when_channel_closed(关闭后报错)。
|
2026-08-21 02:25:40 +08:00 |
|
lbl
|
4f41468725
|
fix(quic): 按流发送任务增加空闲老化,不再永久残留
问题:每个 (protocol, src, dest) 三元组创建一条 QUIC 单向流和发送
任务,映射条目永不移除、rx.recv() 永不结束(map 持有 tx),流、
任务、映射随目的地址数量无界增长。
修复:
- 发送循环改为 120s 空闲超时,超时退出并关闭流。
- 任务退出时经 remove_sender_if_same(tokio Sender::same_channel
身份比较)回收映射条目,避免误删重建后的新条目。
测试:test_remove_sender_if_same 覆盖旧任务误删新条目的竞态。
|
2026-08-21 02:09:30 +08:00 |
|
lbl
|
7d481560e3
|
规范依赖管理并适配 rand 0.10
- tcp_ip 从 git 依赖切换为 crates.io 0.2(IpStackConfig 改用 builder)
- 公共依赖收拢到 workspace.dependencies 统一版本
- 移除 release profile 的 panic=abort(避免 vnt-jni 中止宿主 JVM)
- vnt-jni 升级 edition 2024(no_mangle 改为 unsafe(no_mangle))
- vnt-ipc 显式声明 tokio features
- 适配 rand 0.10:random_range 移至 RngExt,choose_multiple 改名 sample
- 修复 clippy 警告(type_complexity/collapsible_if/ptr_arg)
|
2026-08-20 20:58:07 +08:00 |
|
lbl
|
b4301a8106
|
v2
|
2026-02-10 18:20:39 +08:00 |
|