拆分自 #422 的追评(该 issue 主体是资源侧的「日常广场段永动循环」,与本条无关)。
原始报告见 #422 (comment)
与其修正结论 #422 (comment) ,由 @BebopSpikeSpiegel 提供。
本条属 MFAAvalonia GUI 侧(程序版本 v2.12.2),如需转移到上游仓库请酌情路由。
现象
「任务管线合并」模式下,GUI 队列的显示游标全程超前一格:GUI 标签显示第 N+1 项,窗口里实跑的是 maafw 第 N 个任务(双日志台账逐位可证)。
三个症状:
- 游标超前一格:k=2..12 每个「开始任务」标签的打印时刻,都与 maafw 前一位任务的 task start 毫秒级重合(1~4ms,逐位核对)。
- 队尾提前收场:提前奏乐 +「停止 maafw 任务」。实录中该停止与末任务的真实启动仅差 11ms,险些误杀正在跑的任务。
- 完成横幅「用时」少算末任务段:07-27 实录少 163 秒,恰等于被漏计的套利真实工作时长。
触发条件(已修正)
MFAA 启动时的自更新检测(「启动检测/更新资源」伪队列)的完成事件,与用户队列的执行期发生时间重叠时,被误用作队列推进信号。
- 漂移会话实录(07-27 00:50 最典型):用户在应用启动约 18 秒后点「启动任务」,启动检测尚在飞行;检测的「启动检测完成(异步)」落地后 +50ms 即多发一次「队列任务开始(异步)」——此刻任务 1 尚无完成事件——游标就此超前一格。
- 未漂移会话的共同点:检测在点击前已独立完成(缓冲 4 秒 ~ 98 秒不等),与队列生命周期错开。
被证据推翻的旧假说
原先怀疑「队首启动项在游戏已运行时秒完成」导致漂移,经双日志逐日对齐后推翻:漂移组 StartGame 真实耗时横跨 16.4~73.2 秒(另有两例因窗口未就绪从未完成),与未漂移对照的 52.4 秒高度重叠;游戏已在位/未就绪两种状态下漂移均有发生。
影响范围
- 程序版本 v2.12.2;该模式自 07-23 起存在。
- 语料中最早可见于 07-27(观测左界,非近期回归)。
用户侧规避
启动 MFAA 后,等其自身启动检测的完成横幅出现(约 8~10 秒)再点「启动任务」,错开即不触发。
修复方向
队列游标只应由队列自身任务的完成事件推进,忽略启动检测/更新伪队列的完成信号。
完整双端日志时间线可由报告者提供。
现象
「任务管线合并」模式下,GUI 队列的显示游标全程超前一格:GUI 标签显示第 N+1 项,窗口里实跑的是 maafw 第 N 个任务(双日志台账逐位可证)。
三个症状:
触发条件(已修正)
MFAA 启动时的自更新检测(「启动检测/更新资源」伪队列)的完成事件,与用户队列的执行期发生时间重叠时,被误用作队列推进信号。
被证据推翻的旧假说
原先怀疑「队首启动项在游戏已运行时秒完成」导致漂移,经双日志逐日对齐后推翻:漂移组 StartGame 真实耗时横跨 16.4~73.2 秒(另有两例因窗口未就绪从未完成),与未漂移对照的 52.4 秒高度重叠;游戏已在位/未就绪两种状态下漂移均有发生。
影响范围
用户侧规避
启动 MFAA 后,等其自身启动检测的完成横幅出现(约 8~10 秒)再点「启动任务」,错开即不触发。
修复方向
队列游标只应由队列自身任务的完成事件推进,忽略启动检测/更新伪队列的完成信号。
完整双端日志时间线可由报告者提供。