Skip to content

v1.11.5

Choose a tag to compare

@github-actions github-actions released this 10 Oct 18:02
· 58 commits to main since this release

修一个现场 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 无需升级,也无需重新签名。