[BUG] 启动后代理组页面完全空白

Author: w568wCreated Aug 23, 2023Updated Nov 3, 2023
Labelsbug

Describe the bug 启动后代理组页面完全空白,右上角按钮点击无反应(如图)。「设置」页面显示 Clash 内核版本为「-」。

如果切换到另一个配置(左上角正常提弹出 [绿色对勾] Refresh Clash Config 的提示),则有一定概率发生(大部分情况下依然空白):代理组页面有显示,「设置」页面显示 Clash 内核版本为「1.17.0」,但依然点击任何节点都无反应,点击测速显示全部 ERROR,右上角按钮点击也无反应(如图)。

无论是否空白,都可以正常连接到代理(可见下面的日志,Clash 内核确实正常启动了),但因为 Clash Verge 最后一次正常时的代理类型设置为了「直连」,代理不能正常使用。

已经试过以下方案但无效:

  1. 尝试「设置」页面的 Clash 内核处切换内核为 Clash Meta(因为找不到 Clash Meta 而报 OSError),然后再切换回来;
  2. pkill clash 结束掉所有进程,然后重新启动 Clash Verge;
  3. 卸载并重新安装 Clash Verge;
  4. 删除配置目录下的所有 yaml 文件(例如 profiles.yaml config.yaml verge.yaml clash-verge.yaml),重新启动 Clash Verge。首次启动时可以正常导入配置和显示代理组,但一旦点击任何右上角按钮,会发现点击还是无反应,且点击之后就会再次回到上述问题中去;
  5. 重新启动操作系统。

To Reproduce 在触发问题前没有明确的特殊操作,但是添加了这个源可能是潜在的问题来源。

下面是一个可能的复现方法,但是因为即便我移去源都不能修复该问题,很可能不能复现:

  1. 添加上述源;
  2. 切换到该源,可以正常使用;
  3. 切换到其他源,重复几次;
  4. 切换选择节点和代理模式(例如从「代理」到「全局」再到「直连」),重复几次;
  5. 重启 Clash Verge;
  6. 出现该问题。

Expected behavior 正常使用 Clash Verge。

Information

  • OS: Archlinux x86_64
  • Clash Verge Version: 1.3.6
  • Clash Core: Clash 1.17.0 linux amd64 with go1.20.5 unknown time

Additional context

出错后的日志(追踪等级 TRACE):

2023-08-23 14:00:45 DEBUG [clash_verge::utils::init] - skipping resource copy 'Country.mmdb'
2023-08-23 14:00:45 DEBUG [clash_verge::utils::init] - failed to get modified 'geoip.dat'
2023-08-23 14:00:45 ERROR [clash_verge::utils::init] - failed to copy resources 'geoip.dat', 没有那个文件或目录 (os error 2)
2023-08-23 14:00:45 DEBUG [clash_verge::utils::init] - failed to get modified 'geosite.dat'
2023-08-23 14:00:45 ERROR [clash_verge::utils::init] - failed to copy resources 'geosite.dat', 没有那个文件或目录 (os error 2)
2023-08-23 14:00:45 TRACE [clash_verge::utils::resolve] - init config
2023-08-23 14:00:45 TRACE [clash_verge::utils::resolve] - launch core
2023-08-23 14:00:45 TRACE [mio::poll] - registering event source with poller: token=Token(2147483649), interests=READABLE
2023-08-23 14:00:45 TRACE [clash_verge::utils::resolve] - launch embed server
2023-08-23 14:00:45 TRACE [clash_verge::utils::resolve] - init system tray
2023-08-23 14:00:45 TRACE [mio::poll] - registering event source with poller: token=Token(0), interests=READABLE | WRITABLE
2023-08-23 14:00:46 ERROR [clash_verge::core::core] - failed to create the pid file
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  漏网之鱼"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  国内网站"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  拦截广告"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  Steam 商店/社区"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  选择节点"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  爱奇艺&哔哩哔哩"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  Steam 登录/下载"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider ☁️ Cloudflare"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Start initial compatible provider  动画疯"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="Mixed(http+socks) proxy listening at: [::]:7890"
2023-08-23 14:00:46 INFO [clash_verge::core::core] - [clash]: level=info msg="RESTful API listening at: 127.0.0.1:9090"
2023-08-23 14:00:46 TRACE [mio::poll] - registering event source with poller: token=Token(2147483649), interests=READABLE
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 DEBUG [delay_timer::entity] - tokio-thread started
2023-08-23 14:00:46 TRACE [delay_timer::timer::timer_core] - second_hand: 0, timestamp: 1692770446, task_ids: []
2023-08-23 14:00:46 TRACE [delay_timer::timer::event_handle] - event-dispatch: AddTask(Task { task_id: 1, routine: 0x56166212f830, frequency: SecondsRepeated(StepBy { iter: 1692792046.., step: 21599, first_take: true }), maximum_running_time: None, cylinder_line: 0, valid: true, maximum_parallel_runnable_num: Some(1) })
2023-08-23 14:00:46 DEBUG [delay_timer::timer::task] - task-id: 1, parallel_runnable_num: 0
2023-08-23 14:00:46 DEBUG [delay_timer::timer::event_handle] - task-id: 1 , next-exec-timestamp: 1692792046, slot-seed: 1, cylinder-line: 6
2023-08-23 14:00:46 TRACE [delay_timer::timer::task] - check self: Task { task_id: 1, routine: 0x7f2db4001aa8, frequency: SecondsRepeated(StepBy { iter: 1692792047.., step: 21599, first_take: false }), maximum_running_time: None, cylinder_line: 6, valid: true, maximum_parallel_runnable_num: Some(1) }
2023-08-23 14:00:46 TRACE [delay_timer::timer::timer_core] - second_hand: 1, timestamp: 1692770446, task_ids: []
2023-08-23 14:00:47 TRACE [delay_timer::timer::timer_core] - second_hand: 2, timestamp: 1692770447, task_ids: []
2023-08-23 14:00:48 INFO [clash_verge::core::core] - [clash]: level=info msg="[TCP] 127.0.0.1:36574 --> 127.0.0.1:9090 using GLOBAL"
2023-08-23 14:00:48 INFO [clash_verge::core::core] - [clash]: level=info msg="[TCP] 127.0.0.1:36556 --> 127.0.0.1:9090 using GLOBAL"
2023-08-23 14:00:48 INFO [clash_verge::core::core] - [clash]: level=info msg="[TCP] 127.0.0.1:36562 --> 127.0.0.1:9090 using GLOBAL"
2023-08-23 14:00:48 INFO [clash_verge::core::core] - [clash]: level=info msg="[TCP] 127.0.0.1:36538 --> 127.0.0.1:9090 using GLOBAL"
2023-08-23 14:00:48 INFO [clash_verge::core::core] - [clash]: level=info msg="[TCP] 127.0.0.1:36542 --> 127.0.0.1:9090 using GLOBAL"
2023-08-23 14:00:48 TRACE [delay_timer::timer::timer_core] - second_hand: 3, timestamp: 1692770448, task_ids: []

出错前的日志(追踪等级 INFO):

2023-07-27 09:14:29 ERROR - failed to copy resources 'geoip.dat', 没有那个文件或目录 (os error 2)
2023-07-27 09:14:29 ERROR - failed to copy resources 'geosite.dat', 没有那个文件或目录 (os error 2)
2023-07-27 09:14:29 ERROR - failed to create the pid file
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  选择节点"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  漏网之鱼"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  Steam 客户端地区"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  动画疯"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  爱奇艺&哔哩哔哩"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  拦截广告"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider ☁️ Cloudflare"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Start initial compatible provider  国内网站"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="RESTful API listening at: 127.0.0.1:9090"
2023-07-27 09:14:29 INFO - [clash]: level=info msg="Mixed(http+socks) proxy listening at: [::]:7890"
2023-07-27 09:14:29 INFO - running timer task `rEiebjNteqqf`
2023-07-27 09:16:33 INFO - [clash]: level=info msg="[TCP] 127.0.0.1:33610 --> penguin-stats.io:443 match IPCIDR(172.64.0.0/13) using ☁️ Cloudflare[ 免费-日本2-Ver.5]"
2023-07-27 09:16:33 INFO - [clash]: level=info msg="[TCP] 127.0.0.1:33594 --> penguin-stats.io:443 match IPCIDR(104.24.0.0/14) using ☁️ Cloudflare[ 免费-日本2-Ver.5]"
2023-07-27 09:16:33 INFO - [clash]: level=info msg="[TCP] 127.0.0.1:33578 --> penguin-stats.io:443 match IPCIDR(172.64.0.0/13) using ☁️ Cloudflare[ 免费-日本2-Ver.5]"