-
Notifications
You must be signed in to change notification settings - Fork 12
关于qmt 服务端内存状态损坏的问题,我也遇到了,请问除了重启qmt 之外还有其他的解决方案吗? #2
Copy link
Copy link
Open
Description
BSON 断言崩溃 (Assertion failed: u < 1000000, bsonobj.cpp)
现象:调用 xtdata.get_local_data() 或 xtdata.get_market_data_ex() 时进程崩溃, 错误信息为 Assertion failed: u < 1000000, file ...\bsonobj.cpp, line 1388。 get_full_tick()、get_stock_list_in_sector() 等其他接口正常。
根因:QMT 服务端进程(XtMiniQmt.exe / miniquote.exe)内部状态损坏, 返回了无效的 BSON 响应。与磁盘数据文件无关(经排查:移除整个 datadir 仍崩溃)。
解决方法:重启 QMT 客户端软件即可恢复。
排查记录(2026-02-15):
最初误判为线程并发问题,添加了 asyncio.Lock 串行化依赖(保留,有防护价值)
将定时下载调度器拆分为独立进程 qmt-scheduler(保留,架构更合理)
经诊断脚本 scripts/diagnose_bson.py 确认只有 get_local_data / get_market_data_ex 崩溃
经 scripts/find_bad_cache.py 排除了所有磁盘文件(datadir、共享内存、IPC 队列)
最终确认重启 QMT 后问题消失,属于 QMT 服务端内存状态损坏
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels