Project

General

Profile

Actions

Bug #16500

closed

ceph_erasure_code_benchmark parameter checking error for LRC plugin

Added by Ting-Yi Lin almost 8 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Tests
Target version:
-
% 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 #1

Updated by Greg Farnum almost 7 years ago

  • Project changed from Ceph to RADOS
  • Category set to EC Pools
  • Component(RADOS) EC plugins added
Actions #2

Updated by Kefu Chai over 5 years ago

  • Category changed from EC Pools to Tests
  • Status changed from New to Fix Under Review
  • Assignee set to Kefu Chai
Actions #3

Updated by Kefu Chai over 5 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF