AskaEth
4952ee2706
fix(accounts,probe): 测试缝换稳定身份(ABA)+ 超时墙钟对齐真实预算(M236)
两条 M230 台账判定「真开着」的测试债:
1. accounts 测试缝的 key 是 Arc::as_ptr(&job.cancelled)。job 一 drop,控制块
立刻可能分给下一个 LoginJob,于是新 job 读到旧 job 的记录(ABA),并行跑的
「设备码入口不许置位 browser_first」因此偶发假红。改成 LoginJob 自带的
稳定身份 JobId(cfg(test) 字段,进程内单调递增、永不复用);ENTRIES 从
Vec<(usize,bool)> 改成带 Weak 的 Entry:record 时 retain 收走已 drop 的 job,
同一 job 覆写成「最后一次」(消掉 mode_for 取第一条的歧义)。
反向证据:身份退回堆地址 ⇒ the_test_seam_does_not_reuse_a_heap_address_as_identity
红(mode_for(&younger) 读到 Some(true))。
2. probe 的 silent_server_times_out 断 `elapsed < 3s`,跟真实预算(400ms)无关。
改成 预算 + SLACK(400ms + 1s):抓「预算没生效」(那要等假服务器睡满 5s),
放开毫秒级精度;并新增两条判据——detail 里的时限就是本次预算(证明走的是
预算分支)、假服务器真的收到 1 次请求(不是没连上就早退)。
反向证据:摘掉 tokio::time::timeout ⇒ 5.08s / unreachable 红;把计时值硬编码
3s ⇒ 3.006s > 1.4s 红。
2026-11-11 06:53:52 +08:00
..
2026-11-04 00:21:19 +08:00
2026-11-11 06:00:27 +08:00
2026-11-11 06:53:52 +08:00
2026-11-05 13:36:44 +08:00
2026-11-05 06:35:03 +08:00
2026-11-08 17:03:13 +08:00
2026-11-11 06:00:27 +08:00
2026-11-04 00:21:19 +08:00
2026-11-02 09:29:31 +08:00
2026-11-02 09:29:31 +08:00
2026-11-05 19:09:53 +08:00
2026-11-07 17:01:13 +08:00
2026-11-05 13:36:44 +08:00
2026-11-05 06:35:19 +08:00
2026-11-05 05:08:35 +08:00
2026-11-08 17:03:13 +08:00
2026-11-09 18:42:41 +08:00
2026-11-07 10:36:35 +08:00
2026-11-11 06:00:27 +08:00
2026-11-02 10:11:55 +08:00
2026-11-02 09:29:31 +08:00
2026-11-02 09:29:31 +08:00