Repository navigation
v1.11.5
修一个现场 bug:IP 数据库下载成功,但本地质量从来没被查询过
症状
数据目录里两个 .mmdb 都好好的(127 MB + 9.6 MB),而面板上永远显示"还没查到",
日志里没有任何报错 —— 系统看起来很安静,安静得像一切正常。
根因
"要不要查质量"被挂在了国家那套欠账门上:country_owed 在节点国家已知后返回 false,
而现场六台节点早就有国家了 —— 于是那道门永久关着,查询函数一次都没被调用。
所以"库下好了"与"有人去查"从来不在同一条路径上。
修法
- 质量有了自己的门:判据与
Node::quality判"过期"是同一条(结论属于当前地址就不欠)——
一处定义、两处使用,否则"该不该查"与"算不算数"迟早分叉; - 心跳里与国家那套并行、互不依赖(国家门关了也不影响它);
- 补了一条专盯此场景的单测:
quality_is_still_owed_when_the_country_is_already_known。
另外(可观测性)
geo任务现在每轮报一次家底:geo: N of M databases configured;- "没配 URL"从
debug提到info—— 一个可能"什么都不做"的定时任务,
必须说得出来"我还在、我看到的是这样",否则运维看到的只是一个安静的系统。
⚠️ 已知、尚未修(下一版)
MaxMind 与 DB-IP 目前共用同一个设置键:填 DB-IP 的 .mmdb.gz 会让 MaxMind 那两个来源
把它当 .tar.gz 解,日志里出现两条 cannot unpack 的 WARN。
无害(DB-IP 照常成功),但很误导。修法是按内容判断格式(gzip 魔数 + tar 的 ustar 标记 + 裸 mmdb)。
只有 hub 改动;agent 无需升级,也无需重新签名。