Skip to content

v1.9.9 — 修复并发扫描 Pickle Bug

Choose a tag to compare

@handsomejustin handsomejustin released this 10 Jun 20:24
· 65 commits to main since this release

v1.9.9 修复并发扫描 Pickle Bug

问题

--workers N 并发模式使用动态 importlib 加载的策略类时,子进程无法 pickle 反序列化,导致静默返回空结果。

根因

ProcessPoolExecutor 将策略类对象 pickle 序列化后发送到子进程。动态加载的类模块(如 strategy_module)未注册到子进程的 sys.modules,反序列化失败。异常被 except Exception: continue 静默吞掉。

修复

  • _scan_parallel 改为传递策略文件路径(字符串),子进程内自行通过 _load_strategy_class 加载
  • 新增 _get_strategy_file:从类方法 co_filename 反查策略源文件路径
  • 新增回归测试 TestParallelPickleFix

验证

  • 381 测试全部通过(含新增回归测试)
  • ruff check 全绿
  • 并发模式 --workers 4 现在可正常返回信号

Full Changelog: v1.9.8...v1.9.9