记一次openstack bug 发现:RBD 驱动多层clone 超过最大clone层数后flatten的bug,使用非法内存

2 篇文章 0 订阅
1 篇文章 0 订阅

测试在测试产品的clone卷功能时,对接openstack 平台测试多层clone,超过默认最大clone层数(5)后自动 flatten的功能。测试过程中发现最后一层新建的clone卷一直在创建中,于是就找到了我。

打开cinder 的日志 /var/log/cinder/volumes.log ,发现cinder-volume 进程被kill了。

开始猜测,flatten 时间太长,导致cinder服务自杀?,查看卷以后发现卷才1G,于是搜下messages,看是否有异常log,一看果然有异常记录。

内存错误,菊花一紧,难道是我的锅?之前的测试flatten ,unprotect, remove 操作并没有问题。这种常见的操作如果有bug,应该早发现了。初步怀疑是openstack的锅。打开rbd 驱动找问题点附近的code,create_cloned_volume 函数。

出问题的code,src_volume 操作时候crash的,怀疑之前被释放过。

于是继续向上找问题点:果然在上面发现了src-volume被释放了,后面有继续使用。。。。

应该是防止src_volume close 之后再打开或者这里不关闭就可以了,修改后,在验证可以创建卷了。

openstack   cinder-13.0.1 附近的几个版本可能都有问题。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值