Project

General

Profile

Actions

Bug #69758

closed

standalone: test_ceph_helpers.sh fails in erasure_code_plugin_exists

Added by Ronen Friedman about 1 year ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Category:
-
Target version:
-
% Done:

0%

Source:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Tags (freeform):
Fixed In:
v19.3.0-7930-g80660684d0
Released In:
v20.2.0~1002
Upkeep Timestamp:
2025-11-01T01:14:40+00:00

Description

(Can be recreated locally, simply by running this standalone test)

Appear, for example, in:
https://pulpito.ceph.com/?branch=wip-yuri-testing-2025-01-28-0809/8099193

From a local run:

Sun Feb  2 01:07:46 CST 2025 ../qa/standalone/ceph-helpers.sh:2107: erasure_code_plugin_exists:  local grepstr                                                                                                                                                                                                                                                                                
Sun Feb  2 01:07:46 CST 2025 ../qa/standalone/ceph-helpers.sh:2108: erasure_code_plugin_exists:  local s                                                                                                                                                                                                                                                                                      
Sun Feb  2 01:07:46 CST 2025 ../qa/standalone/ceph-helpers.sh:2109: erasure_code_plugin_exists:  case `uname` in                                                                                                                                                                                                                                                                              
Sun Feb  2 01:07:46 CST 2025 .../qa/standalone/ceph-helpers.sh:2109: erasure_code_plugin_exists:  uname                                                                                                                                                                                                                                                                                       
Sun Feb  2 01:07:46 CST 2025 ../qa/standalone/ceph-helpers.sh:2111: erasure_code_plugin_exists:  grepstr='jerasure.*No such file'                                                                                                                                                                                                                                                             
Sun Feb  2 01:07:46 CST 2025 .../qa/standalone/ceph-helpers.sh:2114: erasure_code_plugin_exists:  ceph osd erasure-code-profile set TESTPROFILE plugin=jerasure                                                                                                                                                                                                                               
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2114: erasure_code_plugin_exists:  s='*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***                                                                                                                                                                                                                      
Sun Feb  2 01:07:47 CST 2025 Error ENOENT: technique= is not a valid coding technique.  Choose one of the following: reed_sol_van, reed_sol_r6_op, cauchy_orig, cauchy_good, liberation, blaum_roth, liber8tion'                                                                                                                                                                              
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2115: erasure_code_plugin_exists:  local status=2                                                                                                                                                                                                                                                                               
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2116: erasure_code_plugin_exists:  '[' 2 -eq 0 ']'                                                                                                                                                                                                                                                                              
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2118: erasure_code_plugin_exists:  grep --quiet 'jerasure.*No such file'                                                                                                                                                                                                                                                        
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2118: erasure_code_plugin_exists:  echo bin boost build.ninja build.ninja.tmp3ccaa ceph.conf CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json compile_commands.json.tmpaa453 CTestTestfile.cmake dev doc etc include keyring lib liburing_ext-prefix loglines_main loglines_store2 logrotate.conf monitoring\
 out qa qatlib_ext-prefix src systemd td user-config.jam vstart_environment.sh DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH bin boost build.ninja build.ninja.tmp3ccaa ceph.conf CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json compile_commands.json.tmpaa453 CTestTestfile.cmake dev doc etc include keyring lib liburing_ext-prefix loglines_main log\
lines_store2 logrotate.conf monitoring out qa qatlib_ext-prefix src systemd td user-config.jam vstart_environment.sh Error ENOENT: technique= is not a valid coding technique. Choose one of the following: reed_sol_van, reed_sol_r6_op, cauchy_orig, cauchy_good, liberation, blaum_roth, liber8tion                                                                                        
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2119: erasure_code_plugin_exists:  status=1                                                                                                                                                                                                                                                                                     
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2121: erasure_code_plugin_exists:  echo bin boost build.ninja build.ninja.tmp3ccaa ceph.conf CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json compile_commands.json.tmpaa453 CTestTestfile.cmake dev doc etc include keyring lib liburing_ext-prefix loglines_main loglines_store2 logrotate.conf monitoring\
 out qa qatlib_ext-prefix src systemd td user-config.jam vstart_environment.sh DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH bin boost build.ninja build.ninja.tmp3ccaa ceph.conf CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json compile_commands.json.tmpaa453 CTestTestfile.cmake dev doc etc include keyring lib liburing_ext-prefix loglines_main log\
lines_store2 logrotate.conf monitoring out qa qatlib_ext-prefix src systemd td user-config.jam vstart_environment.sh Error ENOENT: technique= is not a valid coding technique. Choose one of the following: reed_sol_van, reed_sol_r6_op, cauchy_orig, cauchy_good, liberation, blaum_roth, liber8tion                                                                                        
Sun Feb  2 01:07:47 CST 2025 bin boost build.ninja build.ninja.tmp3ccaa ceph.conf CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json compile_commands.json.tmpaa453 CTestTestfile.cmake dev doc etc include keyring lib liburing_ext-prefix loglines_main loglines_store2 logrotate.conf monitoring out qa qatlib_ext-prefix src systemd td user-config.jam vstart_environme\
nt.sh DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH bin boost build.ninja build.ninja.tmp3ccaa ceph.conf CMakeCache.txt CMakeFiles cmake_install.cmake compile_commands.json compile_commands.json.tmpaa453 CTestTestfile.cmake dev doc etc include keyring lib liburing_ext-prefix loglines_main loglines_store2 logrotate.conf monitoring out qa qatlib_ext-prefix src syste\
md td user-config.jam vstart_environment.sh Error ENOENT: technique= is not a valid coding technique. Choose one of the following: reed_sol_van, reed_sol_r6_op, cauchy_orig, cauchy_good, liberation, blaum_roth, liber8tion                                                                                                                                                                 
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2123: erasure_code_plugin_exists:  return 1                                                                                                                                                                                                                                                                                     
Sun Feb  2 01:07:47 CST 2025 ../qa/standalone/ceph-helpers.sh:2132: test_erasure_code_plugin_exists:  return 1              


Related issues 1 (0 open1 closed)

Has duplicate RADOS - Bug #69762: Failure in erasure code tests: technique= is not a valid coding techniqueDuplicateConnor Fawcett

Actions
Actions #1

Updated by Ronen Friedman about 1 year ago

Test was OK for 'main' of 14.1.25 (f992060449337cc370ed9bda1e001bf7f4e78040)

Actions #2

Updated by Ronen Friedman about 1 year ago

Failure tracked to a87a77c63fd6b14b197ff414f5b92b6ffb61b808
"core: Change the default plugin for Ceph erasure coded pools from Jerasure to ISA-L"

Actions #3

Updated by Ronen Friedman about 1 year ago

  • Assignee set to Bill Scales
Actions #4

Updated by Aishwarya Mathuria about 1 year ago

  • Related to Bug #69762: Failure in erasure code tests: technique= is not a valid coding technique added
Actions #5

Updated by Bill Scales about 1 year ago

This is indeed a regression caused by https://github.com/ceph/ceph/pull/58052 changing the default plugin in global.yaml.in but I think the underlying problem is a faulty test case.

In qa/standalone/ceph-helpers.sh:

This function claims to test whether an erasure code plugin is available by trying to create an erasure code profile with just "plugin=$plugin":


function erasure_code_plugin_exists() {
    local plugin=$1
    local status
    local grepstr
    local s
    case `uname` in
        FreeBSD) grepstr="Cannot open.*$plugin" ;;
        *) grepstr="$plugin.*No such file" ;;
    esac

    s=$(ceph osd erasure-code-profile set TESTPROFILE plugin=$plugin 2>&1)
    local status=$?
    if [ $status -eq 0 ]; then
        ceph osd erasure-code-profile rm TESTPROFILE
    elif ! echo $s | grep --quiet "$grepstr" ; then
        status=1
        # display why the string was rejected.
        echo $s
    fi
    return $status
}

This used to work for jerasure because the profile would inherit the options from the osd_pool_default_erasure_code_profile conf file setting which set the default plugin to jerasure, which meant that the erasure code profile was successfully created. When the conf file setting is changed to isal this stops working because it is invalid to create a jerasure profile without specifying a technique , k and m (although the documentation says technique should default to reed_sol_van which we will fix in 69762). This causes the "osd erasure-code-profile set" command to fail and the elif statement is evaluated. This tries to differentiate between a failure due to a non existent plugin (No such file) and a failure due to missing parameters to the profile - it does this correctly but leaves status != 0 in both cases.

To make this function work we need to add

else
  # plugin exists, but profile requires extra parameters
  status=0
fi
Actions #6

Updated by Bill Scales about 1 year ago

  • Assignee changed from Bill Scales to Connor Fawcett
Actions #7

Updated by Laura Flores about 1 year ago

  • Related to deleted (Bug #69762: Failure in erasure code tests: technique= is not a valid coding technique)
Actions #8

Updated by Laura Flores about 1 year ago

  • Has duplicate Bug #69762: Failure in erasure code tests: technique= is not a valid coding technique added
Actions #9

Updated by Laura Flores about 1 year ago

/a/yuriw-2025-01-31_15:46:33-rados-wip-yuri5-testing-2025-01-30-1311-distro-default-smithi/8107055

Actions #10

Updated by Connor Fawcett about 1 year ago

  • Pull request ID set to 61674

Submitted a PR with a fix, I have done some preliminary testing but still need to pass a suite re-run. Will aim to have this done by Monday.

Actions #11

Updated by Laura Flores about 1 year ago

  • Status changed from New to Fix Under Review
Actions #12

Updated by Laura Flores about 1 year ago

/a/lflores-2025-02-05_22:51:38-rados-wip-yuri5-testing-2025-01-30-1311-distro-default-smithi/8117744

Actions #13

Updated by Jaya Prakash about 1 year ago ยท Edited

/a/akupczyk-2025-01-27_13:10:42-rados-aclamk-testing-ganymede-2025-01-24-0925-distro-default-smithi/
8096556 , 8096422

Actions #14

Updated by Laura Flores about 1 year ago

/a/yuriw-2025-02-05_21:36:43-rados-wip-yuri8-testing-2025-02-04-1046-distro-default-smithi/8117319

Actions #15

Updated by Laura Flores about 1 year ago

/a/yuriw-2025-02-21_18:09:35-rados-wip-pdonnell-testing-20250218.200348-debug-distro-default-smithi/8147311

Actions #16

Updated by Bill Scales about 1 year ago

  • Status changed from Fix Under Review to Resolved
Actions #17

Updated by Jaya Prakash about 1 year ago

/a/akupczyk-2025-02-20_15:14:45-rados-aclamk-testing-ganymede-2025-02-20-0826-distro-default-smithi/8143715

Actions #18

Updated by Upkeep Bot 8 months ago

  • Merge Commit set to 80660684d0018d755436ec85108e7e6f76d7fdf8
  • Fixed In set to v19.3.0-7930-g80660684d00
  • Upkeep Timestamp set to 2025-07-09T22:40:55+00:00
Actions #19

Updated by Upkeep Bot 8 months ago

  • Fixed In changed from v19.3.0-7930-g80660684d00 to v19.3.0-7930-g80660684d0
  • Upkeep Timestamp changed from 2025-07-09T22:40:55+00:00 to 2025-07-14T19:37:22+00:00
Actions #20

Updated by Upkeep Bot 5 months ago

  • Released In set to v20.2.0~1002
  • Upkeep Timestamp changed from 2025-07-14T19:37:22+00:00 to 2025-11-01T01:14:40+00:00
Actions

Also available in: Atom PDF