nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
840 stars 93 forks source link

rnacos启动后偶尔出现配置列表为空 #86

Closed FlowerBirds closed 3 months ago

FlowerBirds commented 5 months ago

1716174505173

目前没有发现什么规律,但是已经遇见过三次,每次出现后重启正常。

heqingpan commented 5 months ago

问题收到,这个可能和v0.5.8前端新版本控制台有关,感谢反馈。

使用时可以先切回v0.5.7。

heqingpan commented 5 months ago

确认一下,你上面使用的版本是新版本v0.5.8吧?(我看你刚才那个issue使用的版本是v0.5.8就把这个issue的版本也认为是同一个。)

FlowerBirds commented 5 months ago

在0.5.7版本遇到过一次,当时重启后再未出现,切换到0.5.8的时候又出现过2次,暂未发现特殊操作引起该问题。

heqingpan commented 5 months ago

我后面试试看是否能复现。

出现时,页面刷新数据也不出来吗?

下次如果遇到页面刷新也没数据,可以保留下浏览器中请求的详细信息发出来。

FlowerBirds commented 5 months ago

通过在0.5.7和0.5.8版本测试,此现象很容易复现。启动后关闭,中间间隔几秒,再次启动,重复两到三次,基本可以复现,日志截图如下;

配置列表正常的日志如下图: 1716201149466

配置列表为空的日志如下图: 1716201113306

从日志对比来看,当日志“InnerNodeManage UpdateNodes,size:1”连续打印多次的时候,功能正常,如果打印一次的话,说明功能异常,且异常时,需要重新登录,重启后功能正常时不需要登录。

可以根据上述现象排查下

FlowerBirds commented 5 months ago

访问异常时浏览器网络请求: 1716201742407

访问正常时浏览器请求: 1716201788077

对比多了web_resources请求

heqingpan commented 5 months ago

中一个issue同学是在windows发现的问题,linux没问题。

确认一下你上面的问题是不是也是在windows发生的。

heqingpan commented 5 months ago

你们反馈的信息已比较充分。

后面我先尝试复现,之后再想办法解决。

xieliangza commented 4 months ago

同样问题出现过几次配置数据被清空,大概是任务管理器直接杀进程、电脑关机、电脑强制关机等 最近一次是电脑强制关机,再进来就只有最后编辑的那个配置还在,其他没编辑的配置全部丢失 使用版本为rnacos-aarch64-pc-windows-msvc-v0.5.12

heqingpan commented 4 months ago

同样问题出现过几次配置数据被清空,大概是任务管理器直接杀进程、电脑关机、电脑强制关机等 最近一次是电脑强制关机,再进来就只有最后编辑的那个配置还在,其他没编辑的配置全部丢失 使用版本为rnacos-aarch64-pc-windows-msvc-v0.5.12

你描述的问题和前面的问题似乎不太一样。 前面的问题是整个列表查不到,重启之后会恢复; 你的问题是最后一个配置存在,其它的内容看不到。

确认一下:

  1. 打开时列表中只有最后编辑的一个配置,还是你打开的是最后一个页面?
  2. 出现这个问题后重启能恢复吗?
  3. 出现这个问题之前服务中有多少个配置?
  4. 如果确认重启也不能恢复,那这算丟历史数据,问题比较严重。你的配置内容敏感吗?是否方便提供nacos_db数据给我分析确认原因?
xieliangza commented 3 months ago

打开时列表中只有最后编辑的一个配置,还是你打开的是最后一个页面?

出现这个问题后重启能恢复吗?

出现这个问题之前服务中有多少个配置?

如果确认重启也不能恢复,那这算丟历史数据,问题比较严重。你的配置内容敏感吗?是否方便提供nacos_db数据给我分析确认原因?

    ------------------ Original ------------------ From: @.>; Date:  Wed, Jun 26, 2024 07:02 PM To: @.>; Cc: @.>; @.>; Subject:  Re: [nacos-group/r-nacos] rnacos启动后偶尔出现配置列表为空 (Issue #86)

 

同样问题出现过几次配置数据被清空,大概是任务管理器直接杀进程、电脑关机、电脑强制关机等 最近一次是电脑强制关机,再进来就只有最后编辑的那个配置还在,其他没编辑的配置全部丢失 使用版本为rnacos-aarch64-pc-windows-msvc-v0.5.12

你描述的问题和前面的问题似乎不太一样。 前面的问题是整个列表查不到,重启之后会恢复; 你的问题是最后一个配置存在,其它的内容看不到。

确认一下:

打开时列表中只有最后编辑的一个配置,还是你打开的是最后一个页面?

出现这个问题后重启能恢复吗?

出现这个问题之前服务中有多少个配置?

如果确认重启也不能恢复,那这算丟历史数据,问题比较严重。你的配置内容敏感吗?是否方便提供nacos_db数据给我分析确认原因?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

xieliangza commented 3 months ago
  1. 打开时列表中只有最后编辑的一个配置,还是你打开的是最后一个页面? 1.1 最近一次是这样,当时强制重启电脑前有最后编辑过那个yml配置文件,重启电脑后就只有那一个yml配置文件,其他都没了。

  2. 出现这个问题后重启能恢复吗? 2.1 没试过,很少重启电脑,当发现配置没了之后都选择重新导入配置文件处理了

  3. 出现这个问题之前服务中有多少个配置? 3.1  yml配置有29个,非yml有1018个(dubbo的注册配置)

  4. 如果确认重启也不能恢复,那这算丟历史数据,问题比较严重。你的配置内容敏感吗?是否方便提供nacos_db数据给我分析确认原因? 4.1 后续如果再出现配置丢失,会尝试重启rnacos观察看看配置是否能恢复。 4.2  nacos_db不方便提供,很抱歉

    ------------------ Original ------------------ From: @.>; Date:  Wed, Jun 26, 2024 07:02 PM To: @.>; Cc: @.>; @.>; Subject:  Re: [nacos-group/r-nacos] rnacos启动后偶尔出现配置列表为空 (Issue #86)

 

同样问题出现过几次配置数据被清空,大概是任务管理器直接杀进程、电脑关机、电脑强制关机等 最近一次是电脑强制关机,再进来就只有最后编辑的那个配置还在,其他没编辑的配置全部丢失 使用版本为rnacos-aarch64-pc-windows-msvc-v0.5.12

你描述的问题和前面的问题似乎不太一样。 前面的问题是整个列表查不到,重启之后会恢复; 你的问题是最后一个配置存在,其它的内容看不到。

确认一下:

打开时列表中只有最后编辑的一个配置,还是你打开的是最后一个页面?

出现这个问题后重启能恢复吗?

出现这个问题之前服务中有多少个配置?

如果确认重启也不能恢复,那这算丟历史数据,问题比较严重。你的配置内容敏感吗?是否方便提供nacos_db数据给我分析确认原因?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

heqingpan commented 3 months ago

@xieliangza 感谢反馈,我后面会找时间尝试看看是否能复现你所说的场景。如果能稳定复现、确认问题,会想办法解决。

heqingpan commented 3 months ago

此问题已复现并在v0.5.15解决。

其原因是:在windows环境下关闭进程后快速打开,第二次启动时可能因为第一资关闭的文件没有完全释放,导致第二次进程没能加载历史数据(数据列表为空白);重启后可以数据能重新加载恢复。

解决方案:主动引入文件锁(一个放到nacos_db目录的空文件);进程启动时先获取文件锁,如果获取不到则直接报错退出;应用应用退出时自动释放文件锁。

引入文件机制锁后,按之前的方式操作没有再出现这个现象,就当做这个问题已处理。

FlowerBirds commented 3 months ago

非常感谢,但很遗憾,在0.5.15版本中仍然存在。

验证版本:rnacos-x86_64-pc-windows-msvc-v0.5.15

正常访问时启动日志: image

异常访问时启动日志: image

不管停止后隔几秒还是十几秒去启动,都可能出现这种情况。如果当访问跳转到登录界面,那就是列表为空,如果正常的话,列表就可以加载。感觉还是启动的时候没加载的数据文件,导致之前的session没被识别才会出现登录界面。

heqingpan commented 3 months ago

收到。

我之前是在windows通过快速关闭重启的这个方式复现的问题,加了锁机制后同样的操作多次都没再发生,所以判断问题已被解决。

后面我再想办法看看是否能较稳定复现,再想办法解决。

heqingpan commented 3 months ago

和@FlowerBirds 线下确认,上面的调整 之后发布的版本已解决此问题(重复十几次,没有再发现问题)。

会在本周末发布一个新版本彻底解决此问题。

heqingpan commented 3 months ago

调整后的内容,新版本v0.5.16已发布,问题已修复。