From efa1e54362423d4cfd1541fb8c68237b7b9ebbe3 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Thu, 8 Dec 2016 12:40:42 +0100 Subject: [PATCH] tests: fix erasure-code premature deallocation of cct The setup function returns before the run function, the cct variable must be a data member, not a local variable that gets de-allocated before run() starts. Signed-off-by: Loic Dachary --- src/test/erasure-code/ceph_erasure_code.cc | 3 ++- src/test/erasure-code/ceph_erasure_code_benchmark.cc | 2 +- src/test/erasure-code/ceph_erasure_code_benchmark.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/erasure-code/ceph_erasure_code.cc b/src/test/erasure-code/ceph_erasure_code.cc index f39900b88f0..52a21292cae 100644 --- a/src/test/erasure-code/ceph_erasure_code.cc +++ b/src/test/erasure-code/ceph_erasure_code.cc @@ -37,6 +37,7 @@ namespace po = boost::program_options; class ErasureCodeCommand { po::variables_map vm; ErasureCodeProfile profile; + boost::intrusive_ptr cct; public: int setup(int argc, char** argv); int run(); @@ -82,7 +83,7 @@ int ErasureCodeCommand::setup(int argc, char** argv) { ceph_options.push_back(i->c_str()); } - auto cct = global_init( + cct = global_init( &def_args, ceph_options, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, CINIT_FLAG_NO_DEFAULT_CONFIG_FILE); diff --git a/src/test/erasure-code/ceph_erasure_code_benchmark.cc b/src/test/erasure-code/ceph_erasure_code_benchmark.cc index 01250cc774b..238d8e6af82 100644 --- a/src/test/erasure-code/ceph_erasure_code_benchmark.cc +++ b/src/test/erasure-code/ceph_erasure_code_benchmark.cc @@ -81,7 +81,7 @@ int ErasureCodeBench::setup(int argc, char** argv) { ceph_options.push_back(i->c_str()); } - auto cct = global_init( + cct = global_init( &def_args, ceph_options, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, CINIT_FLAG_NO_DEFAULT_CONFIG_FILE); diff --git a/src/test/erasure-code/ceph_erasure_code_benchmark.h b/src/test/erasure-code/ceph_erasure_code_benchmark.h index c9375916473..c65f716b1e1 100644 --- a/src/test/erasure-code/ceph_erasure_code_benchmark.h +++ b/src/test/erasure-code/ceph_erasure_code_benchmark.h @@ -38,6 +38,7 @@ class ErasureCodeBench { ErasureCodeProfile profile; bool verbose; + boost::intrusive_ptr cct; public: int setup(int argc, char** argv); int run(); -- 2.39.5