apolloconfig / apollo

Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
https://www.apolloconfig.com
Apache License 2.0
29.21k stars 10.21k forks source link

1.2 版本回滚bug #1912

Closed hardy1970 closed 5 years ago

hardy1970 commented 5 years ago

回滚会偶发出现回滚配置显示不生效的情况, 即 在前端UI 修改某一个key 的值,发布之后 配置变更,然后点击回滚按钮, 再次对回滚的值进行发布,发现客户端实际值已经变更(回滚成功的),但是UI显示依旧是未回滚的值~~ ~ 版本V1.2

feng257 commented 5 years ago

个人觉得应该不是bug,你看下那个值显示的是上一次发布的值,状态是未发布,所以应该是回滚了之前的状态。

hardy1970 commented 5 years ago

回滚后点击发布后,UI显示的依旧是未回滚的值 示例: k1 对应旧值A ,将其值修改为B,点击发布,UI显示k1 的值为B,客户端获取的为B, ok此处没毛病; 点击回滚按钮,UI显示值为B,未发布, 点击发布,UI显示依旧为B,客户端获取值为A。难道这不算bug么?

nobodyiam commented 5 years ago

@hardyxia2018

我按照你的case在demo环境试了一下,没有发现你说的这个问题。

http://106.12.25.204:8070/config.html?#/appid=config-test-app

Apollo Config Demo. Please input key to get the value. Input quit to exit.
> k1
> [apollo-demo][main]2019-01-24 16:41:50,263 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : k1 with value: A
[apollo-demo][Apollo-Config-1]2019-01-24 16:42:02,505 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Changes for namespace application
[apollo-demo][Apollo-Config-1]2019-01-24 16:42:02,506 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Change - key: k1, oldValue: A, newValue: B, changeType: MODIFIED
> k1
> [apollo-demo][main]2019-01-24 16:42:04,557 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : k1 with value: B
[apollo-demo][Apollo-Config-1]2019-01-24 16:42:13,488 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Changes for namespace application
[apollo-demo][Apollo-Config-1]2019-01-24 16:42:13,488 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Change - key: k1, oldValue: B, newValue: A, changeType: MODIFIED
> k1
> [apollo-demo][main]2019-01-24 16:42:15,742 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : k1 with value: A
[apollo-demo][Apollo-Config-1]2019-01-24 16:42:30,518 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Changes for namespace application
[apollo-demo][Apollo-Config-1]2019-01-24 16:42:30,518 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Change - key: k1, oldValue: A, newValue: B, changeType: MODIFIED
> k1
> [apollo-demo][main]2019-01-24 16:42:33,872 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : k1 with value: B
hardy1970 commented 5 years ago

这个不是必现问题。 回滚发布后客户端是正常,只是显示不对~~ 另 现在测试的不是用quickStart,是按分布式部署方式build的

BINGW2019 commented 5 years ago

image image 先点击回滚按钮查看值是回滚后的值,但是为什么点击发布没有回滚成功,还是回滚前的值

hardy1970 commented 5 years ago

@nobodyiam 用你的环境测试 bug 浮现,操作步骤1--5 image

image

image

image

image

nobodyiam commented 5 years ago

@hardyxia2018

多谢反馈,根据你的描述,是符合回滚的设计场景的,所以不是bug。不过不同的用户对回滚有不同的理解,所以可能存在一定的误解。

这里的回滚机制类似于发布系统,发布系统中的回滚操作是将部署到机器上的安装包回滚到上一个部署的版本,但代码仓库中的代码是不会回滚的,从而开发可以在修复代码后重新发布。

Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户端的配置回滚到上一个已发布版本,也就是说客户端读取到的配置会恢复到上一个版本,但页面上编辑状态的配置是不会回滚的,从而开发可以在修复配置后重新发布。

hardy1970 commented 5 years ago

@nobodyiam ok 明白明白,我的意思就是说前端UI和客户端获取不一致的情况,回滚发布后,客户端获取确实符合预期。 ~~ 建议加一个回滚记录,否则时间久 久不确定客户端与服务端UI是否一致的了

nobodyiam commented 5 years ago

@hardyxia2018

回滚的记录在发布历史中可以看到的

image

hardy1970 commented 5 years ago

好的,感谢~

nobodyiam commented 5 years ago

case先关闭了,如还有问题,可以提供更多信息,或进群交流。

lancelothuxi commented 1 week ago

这个合理么,正常理解都是页面也回滚到之前配置,然后点击发布才生效吧,生产踩坑了。