-
Notifications
You must be signed in to change notification settings - Fork 347
SRE-3703 ci: Fault injection testing stage on VM/bare metal #17953
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 19 commits
4da5ee3
56b5b72
51bd85c
d21036d
ec43c03
2c6c9f7
015e4e4
af5d3fe
26a8c50
29ef865
855a046
e0de010
da2d5fa
3d148d5
e26506b
8d94534
1d559fe
c7b1d07
9d48314
97ca76e
14bfc4e
6af6041
81a40f5
8caf3ca
a82e340
b0435f3
5587a42
68a39cf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,6 +19,7 @@ | |
| // To use a test branch (i.e. PR) until it lands to master | ||
| // I.e. for testing library changes | ||
| //@Library(value='pipeline-lib@your_branch') _ | ||
| @Library(value=['pipeline-lib@grom72/SRE-3704','system-pipeline-lib@grom72/SRE-3704']) _ | ||
|
|
||
| /* groovylint-disable-next-line CompileStatic */ | ||
| job_status_internal = [:] | ||
|
|
@@ -47,42 +48,6 @@ void job_step_update(def value=currentBuild.currentResult) { | |
| jobStatusUpdate(job_status_internal, env.STAGE_NAME, value) | ||
| } | ||
|
|
||
| Map nlt_test() { | ||
| // groovylint-disable-next-line NoJavaUtilDate | ||
| Date startDate = new Date() | ||
| try { | ||
| unstash('nltr') | ||
| } catch (e) { | ||
| print 'Unstash failed, results from NLT stage will not be included' | ||
| } | ||
| sh label: 'Fault injection testing using NLT', | ||
| script: './ci/docker_nlt.sh --class-name fault-injection fi' | ||
| List filesList = [] | ||
| filesList.addAll(findFiles(glob: '*.memcheck.xml')) | ||
| int vgfail = 0 | ||
| int vgerr = 0 | ||
| if (filesList) { | ||
| String rcs = sh label: 'Check for Valgrind errors', | ||
| script: "grep -E '<error( |>)' ${filesList.join(' ')} || true", | ||
| returnStdout: true | ||
| if (rcs) { | ||
| vgfail = 1 | ||
| } | ||
| String suite = sanitizedStageName() | ||
| junitSimpleReport suite: suite, | ||
| file: suite + '_valgrind_results.xml', | ||
| fails: vgfail, | ||
| errors: vgerr, | ||
| name: 'Valgrind_Memcheck', | ||
| class: 'Valgrind', | ||
| message: 'Valgrind Memcheck error detected', | ||
| testdata: rcs | ||
| } | ||
| int runTime = durationSeconds(startDate) | ||
| Map runData = ['nlttest_time': runTime] | ||
| return runData | ||
| } | ||
|
|
||
| // For master, this is just some wildly high number | ||
| String next_version() { | ||
| return '1000' | ||
|
|
@@ -391,8 +356,11 @@ pipeline { | |
| defaultValue: 'ci_vm9', | ||
| description: 'Label to use for 9 VM functional tests') | ||
| string(name: 'CI_NLT_1_LABEL', | ||
| defaultValue: 'ci_nlt_1', | ||
| defaultValue: 'ci_nlt_vm1', | ||
| description: 'Label to use for NLT tests') | ||
| string(name: 'CI_FI_1_LABEL', | ||
| defaultValue: 'ci_fi_vm1', | ||
| description: 'Label to use for Fault Injection (FI) tests') | ||
| string(name: 'FUNCTIONAL_HARDWARE_MEDIUM_LABEL', | ||
| defaultValue: 'ci_nvme5', | ||
| description: 'Label to use for the Functional Hardware Medium (MD on SSD) stages') | ||
|
|
@@ -745,11 +713,18 @@ pipeline { | |
| job_step_update( | ||
| unitTest(timeout_time: 60, | ||
| inst_repos: daosRepos(), | ||
| test_script: 'ci/unit/test_nlt.sh', | ||
| test_script: 'ci/unit/test_nlt.sh' + | ||
| ' --system-ram-reserved 4' + | ||
| ' --max-log-size 1950MiB' + | ||
| ' --dfuse-dir /localhome/jenkins/' + | ||
| ' --log-usage-save nltir.xml' + | ||
| ' --log-usage-export nltr.json' + | ||
| ' --class-name nlt all', | ||
| unstash_opt: true, | ||
| unstash_tests: false, | ||
| inst_rpms: unitPackages(target: 'el9'), | ||
| image_version: 'el9.7')) | ||
| image_version: 'el9.7', | ||
| prov_env_vars: 'VM_CPUS=14')) | ||
| // recordCoverage(tools: [[parser: 'COBERTURA', pattern:'nltir.xml']], | ||
| // skipPublishingChecks: true, | ||
| // id: 'tlc', name: 'Fault Injection Interim Report') | ||
|
|
@@ -978,63 +953,43 @@ pipeline { | |
| } | ||
| } // post | ||
| } // stage('Functional on Ubuntu 20.04') | ||
| stage('Fault injection testing') { | ||
| stage('NLT Fault injection testing') { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. FYI this will require an update to merge requirements
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Restore original name in a82e340 |
||
| when { | ||
| beforeAgent true | ||
| expression { !skipStage() } | ||
| } | ||
| agent { | ||
| dockerfile { | ||
| filename 'utils/docker/Dockerfile.el.9' | ||
| label 'docker_runner_fi' | ||
| additionalBuildArgs dockerBuildArgs(repo_type: 'stable', | ||
| parallel_build: true, | ||
| deps_build: true) + | ||
| ' --build-arg POINT_RELEASE=.7 ' | ||
| args '--tmpfs /mnt/daos_0' | ||
| } | ||
| label params.CI_FI_1_LABEL | ||
| } | ||
| steps { | ||
| job_step_update( | ||
| sconsBuild(parallel_build: true, | ||
| scons_args: 'PREFIX=/opt/daos TARGET_TYPE=release BUILD_TYPE=debug', | ||
| build_deps: 'no')) | ||
| job_step_update(nlt_test()) | ||
| // recordCoverage(tools: [[parser: 'COBERTURA', pattern:'nltr.xml']], | ||
| // skipPublishingChecks: true, | ||
| // id: 'fir', name: 'Fault Injection Report') | ||
| unitTest(timeout_time: 240, | ||
| inst_repos: daosRepos(), | ||
| test_script: 'ci/unit/test_nlt.sh --memcheck no' + | ||
| ' --system-ram-reserved 4 --server-debug WARN' + | ||
| ' --log-usage-import nltr.json' + | ||
| ' --log-usage-save nltr.xml' + | ||
| ' --class-name fault-injection fi', | ||
| unstash_opt: true, | ||
| unstash_tests: false, | ||
| inst_rpms: unitPackages(target: 'el9') + ' daos-client-tests', | ||
| image_version: 'el9.7', | ||
| prov_env_vars: 'VM_CPUS=14')) | ||
| } | ||
| post { | ||
| always { | ||
| unitTestPost artifacts: ['nlt_logs/'], | ||
| testResults: 'nlt-junit.xml', | ||
| always_script: 'ci/unit/test_nlt_post.sh' | ||
| discoverGitReferenceBuild referenceJob: 'daos-stack/daos/master', | ||
| scm: 'daos-stack/daos', | ||
| requiredResult: hudson.model.Result.UNSTABLE | ||
| recordIssues enabledForFailure: true, | ||
| /* ignore warning/errors from PMDK logging system */ | ||
| filters: [excludeFile('pmdk/.+')], | ||
| failOnError: false, | ||
| ignoreQualityGate: true, | ||
| qualityGates: [[threshold: 1, type: 'TOTAL_ERROR'], | ||
| [threshold: 1, type: 'TOTAL_HIGH'], | ||
| [threshold: 1, type: 'NEW_NORMAL', unstable: true], | ||
| [threshold: 1, type: 'NEW_LOW', unstable: true]], | ||
| tools: [issues(pattern: 'nlt-errors.json', | ||
| name: 'Fault injection issues', | ||
| id: 'Fault_Injection'), | ||
| issues(pattern: 'nlt-client-leaks.json', | ||
| name: 'Fault injection leaks', | ||
| id: 'NLT_client')], | ||
| scm: 'daos-stack/daos' | ||
| junit testResults: 'nlt-junit.xml' | ||
| stash name: 'fault-inject-valgrind', | ||
| includes: '*.memcheck.xml', | ||
| allowEmpty: true | ||
| archiveArtifacts artifacts: 'nlt_logs/fault-injection/', | ||
| allowEmptyArchive: true | ||
| job_status_update() | ||
| } | ||
| } | ||
| } // stage('Fault injection testing') | ||
| } // stage('NLT Fault injection testing') | ||
| stage('Test RPMs on EL 9.6') { | ||
| when { | ||
| beforeAgent true | ||
|
|
@@ -1255,8 +1210,7 @@ pipeline { | |
| post { | ||
| always { | ||
| valgrindReportPublish valgrind_stashes: ['nlt-memcheck', | ||
| 'unit-memcheck', | ||
| 'fault-inject-valgrind'] | ||
| 'unit-memcheck'] | ||
| job_status_update('final_status') | ||
| jobStatusWrite(job_status_internal) | ||
| } | ||
|
|
||
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -13,7 +13,7 @@ mydir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" | |
| # Copy over the install tree and some of the build tree. | ||
| rsync -rlpt -z -e "ssh $SSH_KEY_ARGS" .build_vars* opt-daos.tar utils requirements-utest.txt jenkins@"$NODE":build/ | ||
|
|
||
| # shellcheck disable=SC2029 | ||
| ssh -tt "$SSH_KEY_ARGS" jenkins@"$NODE" "DAOS_HTTPS_PROXY=\"${DAOS_HTTPS_PROXY:-}\" \ | ||
| DAOS_NO_PROXY=\"${DAOS_NO_PROXY:-}\" \ | ||
| $(cat "$mydir/test_nlt_node.sh")" | ||
| ssh -T "$SSH_KEY_ARGS" jenkins@"$NODE" \ | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not familiar with
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No impact from end results perspective
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| "DAOS_HTTPS_PROXY=\"${DAOS_HTTPS_PROXY:-}\" \ | ||
| DAOS_NO_PROXY=\"${DAOS_NO_PROXY:-}\" \ | ||
| bash -s -- $*" < "$mydir/test_nlt_node.sh" | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
of course will need to revert