CacheCloud bug修复日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: CacheCloud从3月17日正式开源,虽然在我们内部一直运行正常,开源后虽然没有大的问题,但还是遇到很多小问题,比如操作系统兼容性问题,数据库版本问题,一些配置不灵活等等问题。 期间感谢大家的反馈,现在将CacheCloud修复的问题列出来,希望将来这个能一直更新下去,有问题去github issue一下。


CacheCloud从3月17日正式开源,虽然在我们内部一直运行正常,开源后虽然没有大的问题,但还是遇到很多小问题,比如操作系统兼容性问题,数据库版本问题,一些配置不灵活等等问题。

期间感谢大家的反馈,现在将CacheCloud修复的问题列出来,希望将来这个能一直更新下去,有问题去github issue一下。

 

搜狐视频Redis云平台CacheCloud的github主页:https://github.com/sohutv/cachecloud

 欢迎关注、star、拍砖保密保密保密保密保密,Q群:534429768

  

 

2016-03-18:添加机器后不能立刻出现在机器列表中

1. 表现:添加机器后不能立刻出现在机器列表中。

2. 原因:最早的版本必须等到quartz收集完机器信息才显示。

3. 解决:添加机器信息后,立即显示在列表中,不过机器信息显示收集中。

 

 

2016-03-19:sentinel必须写死在配置中

1. 表现:sentinel列表必须写死在配置中。

2. 原因:历史原因造成,cachecloud在内部用了固定的三台机器,为了偷懒。

3. 解决:sentinel可以灵活配置,具体可以看:

https://github.com/sohutv/cachecloud/commit/e596d4326fac911f4172158de1ae03abb14f9830

 

 

2016-03-21:保存机器收集信息报错

1. 表现:保存机器收集信息,提示和virtual相关的报错

2. 原因:mysql5.7中virtual是关键字

3. 解决:在mybatis的mapper中兼容

具体参考:https://github.com/sohutv/cachecloud/commit/d6e1ffb1ebd9bd1df9b55535da9fec7000167559

 

 

2016-03-28:修复redis cluster节点都在一台机器时,机器挂掉后,无法显示运维界面

1. 表现:应用运维界面为空白,收到空指针

2. 原因:所有实例都挂了,无法获取slot信息,造成空指针

3. 解决:如果出现,暂时先返回空的Map

具体参考:https://github.com/sohutv/cachecloud/commit/b5f8d7dbc78df4354f995c61b6513a6f6188e809

 

 

2016-03-29:修复机器信息统计在centos7 debian等操作系统失效

1. 表现:收集机器信息报错,

2. 原因:centos 各个版本, redhat, ubuntu执行top对应的信息不同,解析方法没有兼容造成。

3. 解决:使用正则表达式解决。

 

 

2016-03-31:启动脚本问题。

问题: /etc/init.d/cachecloud-web start 启动失败

状态:已经修复,详见:https://github.com/sohutv/cachecloud/commit/6ba783a2367aec69d6c1abcd1c65b592a7274cca

解决方法:使用nohup java形式启动,使用kill pid关闭,详见start.sh和stop.sh

 

2016-04-03: 修复机器更新异常。

问题:cachecloud后台机器管理中,修改机器信息提示更新失败。

状态:已经修复,详见:https://github.com/sohutv/cachecloud/commit/ad0d54bbe0a24f3f1eb94b96e34168b0e2d65f61

解决方法:添加和更新用一个方法实现。

 

2016-04-07: 修复应用运维界面,运维后页面不刷新

问题:应用运维界面在执行failover, add slave等操作后,页面刷新不太正常

状态:已经修复。

解决方法:js的页面刷新使用错误,虽然比较好解决,但是这个不刷新会对集群节点关系产生错觉(之前一直是手动刷新解决的).

详见:https://github.com/sohutv/cachecloud/commit/607dc8d254329f71666e6fc34e5c2a0b96cd4dd7

 

2016-04-07: 去掉InstanceInfo中的parentId(对应instance_info表)

问题:parentId起初设计是代表当前节点是否为master(parentId>0代表slave, parentId=0代表master),但是这个设计是有问题的,因为后期在运维过程中,主从关系关系会发生变化,需要维护parentId这个字段的一致性。

状态:已经修复

解决方法:去掉parentId,完全使用实时主从关系。

详见:https://github.com/sohutv/cachecloud/commit/dccb8b2304977bd462fd637c9f1571f04577804b

 

2016-04-07: JedisCluster初始化不需要指定主从关系

问题:JedisCluster初始化用到的nodeList是不需要指定主从关系的,具体可以参考Jedis中JedisClusterConnectionHandler的initializeSlotsCache方法,它会自动发现集群信息。

 

private void initializeSlotsCache(Set<HostAndPort> startNodes, GenericObjectPoolConfig poolConfig) {
    for (HostAndPort hostAndPort : startNodes) {
      Jedis jedis = new Jedis(hostAndPort.getHost(), hostAndPort.getPort());
      try {
        cache.discoverClusterNodesAndSlots(jedis);
        break;
      } catch (JedisConnectionException e) {
        // try next nodes
      } finally {
        if (jedis != null) {
          jedis.close();
        }
      }
    }

    for (HostAndPort node : startNodes) {
      cache.setNodeIfNotExist(node);
    }
  }
 

 

状态:已经修复

详见:https://github.com/sohutv/cachecloud/commit/4b8c4ecf335dc024637f3b69b5adc2ce4e0828c4

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
安全 Java Apache
修复了log4j 的bug
修复了log4j 的bug
75 0
|
7月前
|
人工智能 网络安全 Python
一篇普通的bug日志——bug的尽头是next吗?
[bug 1] TypeError: ‘method’ object is not subscriptable 问题代码:
134 0
一篇普通的bug日志——bug的尽头是next吗?
|
7月前
|
算法 测试技术 C++
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
76 0
|
IDE Linux 开发工具
IntelliJ IDEA 2023.2.1 修复版本日志
IntelliJ IDEA 2023.2.1 修复版本日志
好家伙!查看系统日志时我捕获了一只发生概率小于万分之一的Bug
在开始这篇文章之前想先说一句:如果一套系统暂时没问题,那只是因为它的并发量不够而已。 上周在查看系统日志时,发现了一条与众不同的日志。日志中有一半内容是正常的报文数据,而另一半内容是0x00这样的空数据
|
Android开发
Bug日志(四)——Android 防止多次点击(另解决多个列表子项点击)
在用户使用 应用的时候,经常会出现点击过快且多次点击同一控件的情况, 一方面这是因为应用或手机当前有些卡顿,网络卡啥的 另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮。(比如使用selector再点击后更换背景颜色,图片等等)
|
XML Android开发 数据格式
Bug日志(二)-Android网路请求图片地址图片不显示
Bug日志(二)-Android网路请求图片地址图片不显示
|
存储 API 开发工具
Bug日志(三)-获取本地图片后上传失败
原来为了能给用户提供对文件的更多控制并限制文件混乱,Android Q改变了应用程序访问设备外部存储上文件的方式,例如存储在路径/ sdcard中的文件。Android Q继续使用READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,这些权限对应于存储面向用户的运行时权限。但是,默认情况下targetSdkVersion设置为Android Q的应用(以及manifest清单开启属性来启动这个变更的应用)会获得一个沙盒视图到外部存储。此类应用程序只能看到其特定于应用程序的目录和特定媒体类型,因此应用程序不需要请求任何其他用户权限。
|
Android开发 容器
Bug日志(一):RecyclerView只显示第一行
Bug日志(一):RecyclerView只显示第一行
|
JSON 监控 Kubernetes
如何使用 Deepfence 检测和修复 Log4j2 漏洞
log4j2 漏洞(如 OpenSSL Heartbleed 和 Apache Struts 漏洞之前出现的漏洞)向互联网企业发出了深刻的提醒,一旦补丁可用,通过重新部署应用程序来响应漏洞并不够,您还必须能够发现在您的生产平台中实时利用漏洞并阻止它们。在本教程中,我们将向您展示如何使用 Deepfence ThreatMapper 和 ThreatStryker 来帮助您做到这一点。
162 0