已关闭
[Bug-Report|缺陷反馈]: allgather && allgatherv通信缺陷 #115
issuebot创建于 5月15日关闭于 6月4日
HXDW
5月15日 评论:
5月15日 评论:
类似ranksize,datatype,dataTypeSize_等不需要校验,因为rankszie范围1-8,datatype有一个vector存放了全部的type所以size也不会为0,sendCount,recvCount单次传输已经有上限限制也不会溢出,另外现在ccu的代码正在整改部分代码会被删掉上述部分问题也会被解决,其余问题正在分析。


chenyia
5月26日 评论:
5月26日 评论:
数值安全(HIGH)
jettyNum_固定初始化为常量1,不为0;
dataTypeSize_等不需要校验,datatype有一个vector存放了全部的type所以size也不会为0;
sendCount,recvCount单次传输已经有上限限制也不会溢出;
前序计算逻辑可保证结果不为负值;
channels前序业务流程可保证与对端rnak必定有channel,长度一定大于0


chenyia
5月26日 评论:
5月26日 评论:
资源管理(LOW)
ctxPtr如果申请失败,会通过CHK_RET返回报错,否则必定非空;
channelDescs 前序业务流程可保证长度一定大于0;


chenyia
5月26日 评论:
5月26日 评论:
内存安全(HIGH)
varData为算子入参,由上层框架保证有效性;
dynamic_cast前序业务流程可保参数必定非空;
channels前序业务流程可保证与对端rnak必定有channel,长度一定大于0


Leewis
6月4日 评论:
6月4日 评论:
异常路径内存泄露,需要释放paramMem,该问题已经修改上库,相关pr:https://gitcode.com/cann/hccl/pull/774


6月4日 添加了label:Accepted
AllGather 代码检视报告
数值安全(HIGH)
dataCount / jettyNum_未检查除数if (jettyNum_ == 0) return HCCL_E_PARA;normalSliceSize / dataTypeSize未检查if (dataTypeSize == 0) return HCCL_E_PARA;sendCount * perDataSize未检查溢出dataCount_ * dataTypeSize_未检查count * perDataSize未检查channels.at(connectedRank)[0]未检查空内存安全(MEDIUM)
threads_.at(0)未检查空if (threads_.empty())检查输入验证(MEDIUM)
dataTypeSize_未校验并发安全(LOW)
资源管理(LOW)
ctxPtr申请后未判空channelDescs未检查空优先修复:除零保护、乘法溢出检查(9个HIGH级问题)
AllGatherV 代码检视报告
数值安全(HIGH)
sendCount * perDataSize(displs + count) * sizedataCount_ * dataTypeSize_dataTypeSize_未检查maxCountPerLoop未检查sliceSize * dataTypeSize_内存安全(HIGH)
varData数组容量未检查varData + rankSize_channels.at(connectedRank)[0]输入验证(MEDIUM)
资源管理(HIGH)
优先修复:溢出检查(7处)、内存泄露(2处)、除零保护(2处)