OpenClash icon indicating copy to clipboard operation
OpenClash copied to clipboard

[Bug] 更新订阅启动配置文件加载错误

Open qiyuey opened this issue 1 year ago • 4 comments

Verify Steps

  • [X] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • [X] Branch 我知道 OpenClash 的 Dev 分支切换开关位于插件设置-版本更新中,或者我会手动下载并安装 Dev 分支的 OpenClash
  • [X] Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • [X] Relevant 我知道 OpenClash 与 内核(Core)、控制面板(Dashboard)、在线订阅转换(Subconverter)等项目之间无直接关系,仅相互调用
  • [X] Definite 这确实是 OpenClash 出现的问题
  • [ ] Contributors 我有能力协助 OpenClash 开发并解决此问题
  • [ ] Meaningless 我提交的是无意义的催促更新或修复请求

OpenClash Version

v0.45.157-beta

Bug on Environment

Lean

OpenWrt Version

OpenWrt R24.1.13 / LuCI Master (git-24.019.37088-cdf2b69)

Bug on Platform

Linux-amd64(x86-64)

Describe the Bug

正常通过启动OPENCLASH是可以启动的,但是更新配置过程中会错误地下载 GeoIP 文件,导致“配置文件测试失败”

To Reproduce

  1. Country.mmdb、GeoIP.dat、GeoSite.dat 均已下载,并且是可以正常启动的
  2. Meta 内核,Geodata 数据加载方式为标准模式,启用 GeoIP Dat 版数据库
  3. 点击更新配置文件,提示:配置文件下载成功,使用内核测试是否有错误,错误:配置文件测试失败,请查看《内核日志》排查失败原因!

OpenClash Log

[31mERRO[0m[2024-01-19T15:49:21.100027038Z] rules[3331] [GEOIP,CN,🎯 全球直连] error: can't download MMDB: Get "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb": context deadline exceeded 
[31mERRO[0m[2024-01-19T15:49:21.099936064Z] can't initial GeoIP: can't download MMDB: Get "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb": context deadline exceeded 
[36mINFO[0m[2024-01-19T15:47:51.098507274Z] Can't find MMDB, start download              
[36mINFO[0m[2024-01-19T15:47:51.092064863Z] Geodata Loader mode: memconservative         
[36mINFO[0m[2024-01-19T15:47:51.088529108Z] Start initial configuration in progress

OpenClash Config

No response

Expected Behavior

更新配置文件后,测试配置文件可以正常通过

Additional Context

No response

qiyuey avatar Jan 19 '24 16:01 qiyuey

看起来配置文件里填了geox下载?删了,或者改成cdn的,你现在直连github下载了。

更新前能启动是因为用的mmdb,被新配置文件改成metadb了


等一下。我突然发现,这是哪的geoip,咋github被分到cn了?

ghost avatar Jan 19 '24 16:01 ghost

看起来配置文件里填了geox下载?删了,或者改成cdn的,你现在直连github下载了。

更新前能启动是因为用的mmdb,被新配置文件改成metadb了

等一下。我突然发现,这是哪的geoip,咋github被分到cn了?

配置文件里没有填过下载,更新之后也是可以点击“启动OPENCLASH”按钮正常启动的,只有通过“更新配置”按钮启动才会有问题,所以我怀疑是不是更新配置触发的启动的逻辑比普通启动的逻辑多了一些东西导致了问题

qiyuey avatar Jan 19 '24 19:01 qiyuey

看起来配置文件里填了geox下载?删了,或者改成cdn的,你现在直连github下载了。

更新前能启动是因为用的mmdb,被新配置文件改成metadb了

等一下。我突然发现,这是哪的geoip,咋github被分到cn了?

平时启动加载的是通过覆写功能增加了 geodata-mode: true 的版本,正常读取了 geoip data;会不会是更新配置之后执行的配置文件测试过程中,没有添加 Meta 内核相关的覆写,导致 Meta 内核去下载默认的 mmdb 格式文件了

qiyuey avatar Jan 19 '24 19:01 qiyuey

额内核确实默认下载metadb文件,geoip.metadb其实就是country.mmdb的meta优化版。

但我简单试了几次没复现成功,不清楚怎么回事

覆写里把Github 地址修改打开吧,可能得自己找个地址填进去,

或者手动下一份传进路由器

Mmdb: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb" GeoIp: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat" GeoSite: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat"

ghost avatar Jan 20 '24 03:01 ghost