Actions
Bug #16500
closedceph_erasure_code_benchmark parameter checking error for LRC plugin
% Done:
0%
Source:
other
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
EC plugins
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
There's no parameter set could pass the parameter checking in cep_erasure_code_benchmark while using LRC.
if (erasure_code->get_data_chunk_count() != (unsigned int)k ||
(erasure_code->get_chunk_count() - erasure_code->get_data_chunk_count()
!= (unsigned int)m)) {
cout << "paramter k is " << k << "/m is " << m << ". But data chunk count is "
<< erasure_code->get_data_chunk_count() <<"/parity chunk count is "
<< erasure_code->get_chunk_count() - erasure_code->get_data_chunk_count() << endl;
return -EINVAL;
}
This checking blocks valid LRC parameters (e.g. k=4, m=2, l=3) and return error. I cannot run LRC benchmark since all the parameter combinations fail in either ceph_erasure_code_benchmark or LRC plugin.
This can be reproduced by $ ceph_erasure_code_benchmark --plugin lrc --workload encode --iterations 1048576 --size 4096 --parameter k=4 --parameter m=2 --parameter l=3 --erasure-code-dir /usr/lib64/ceph/erasure-code/
Actions