Open cz4rs opened 2 years ago
ASan
output:
vt ./build/examples/hello_world/hello_world
=================================================================
==40784==ERROR: AddressSanitizer: allocator is out of memory trying to allocate 0x696e692e68 bytes
#0 0x1661377 in operator new(unsigned long) (/home/cz4rs/code/vt/build/examples/hello_world/hello_world+0x1661377)
#1 0x3ae6d7b in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/bin/../lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/basic_string.tcc:219:14
#2 0x2a4d9a4 in vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()::operator()[abi:cxx11]() const /home/cz4rs/code/vt/lib/CLI/CLI/CLI11.hpp:5157:20
#3 0x2a4d92f in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::__invoke_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()&>(std::__invoke_other, vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()&) /usr/bin/../lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/invoke.h:61:14
#4 0x2a4d8bf in std::enable_if<__and_<std::__not_<std::is_void<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::is_convertible<std::__invoke_result<vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()&>::type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::value, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::type std::__invoke_r<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()&>(vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()&) /usr/bin/../lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/invoke.h:142:14
#5 0x2a4d75f in std::_Function_handler<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (), vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)::'lambda'()>::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/std_function.h:290:9
#6 0x2a46db5 in std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()>::operator()() const /usr/bin/../lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/std_function.h:590:9
#7 0x2a3e6d3 in vt::CLI::Option::capture_default_str() /home/cz4rs/code/vt/lib/CLI/CLI/CLI11.hpp:4376:28
#8 0x2a33b0a in vt::CLI::App::add_option(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<bool (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()>) /home/cz4rs/code/vt/lib/CLI/CLI/CLI11.hpp:5121:25
#9 0x2a4bdf4 in vt::CLI::Option* vt::CLI::App::add_option<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, (vt::CLI::detail::enabler)0>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) /home/cz4rs/code/vt/lib/CLI/CLI/CLI11.hpp:5156:23
#10 0x29d5954 in vt::arguments::(anonymous namespace)::addConfigFileArgs(vt::CLI::App&, vt::arguments::AppConfig&) /home/cz4rs/code/vt/src/vt/configs/arguments/args.cc:628:17
#11 0x29b7fe0 in vt::arguments::ArgConfig::parseToConfig[abi:cxx11](int&, char**&, vt::arguments::AppConfig&) /home/cz4rs/code/vt/src/vt/configs/arguments/args.cc:754:3
#12 0x29b7619 in vt::arguments::ArgConfig::parse[abi:cxx11](int&, char**&, vt::arguments::AppConfig const*) /home/cz4rs/code/vt/src/vt/configs/arguments/args.cc:716:12
#13 0x170a172 in vt::runtime::Runtime::Runtime(int&, char**&, short, bool, int, vt::runtime::eRuntimeInstance, vt::arguments::AppConfig const*) /home/cz4rs/code/vt/src/vt/runtime/runtime.cc:156:18
#14 0x16fa0cf in std::_MakeUniq<vt::runtime::Runtime>::__single_object std::make_unique<vt::runtime::Runtime, int&, char**&, short const&, bool&, int&, vt::runtime::eRuntimeInstance, vt::arguments::AppConfig const*&>(int&, char**&, short const&, bool&, int&, vt::runtime::eRuntimeInstance&&, vt::arguments::AppConfig const*&) /usr/bin/../lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/unique_ptr.h:962:34
#15 0x16f9c4f in vt::CollectiveAnyOps<(vt::runtime::eRuntimeInstance)0>::initialize(int&, char**&, short, bool, int*, vt::arguments::AppConfig const*) /home/cz4rs/code/vt/src/vt/collective/collective_ops.cc:225:31
#16 0x170828c in vt::initialize(int&, char**&, int*, vt::arguments::AppConfig const*) /home/cz4rs/code/vt/src/vt/collective/startup.cc:66:10
#17 0x1664302 in main /home/cz4rs/code/vt/examples/hello_world/hello_world.cc:59:3
#18 0x7f993d33555f in __libc_start_call_main (/lib64/libc.so.6+0x2d55f)
==40784==HINT: if you don't care about these errors you may set allocator_may_return_null=1
SUMMARY: AddressSanitizer: out-of-memory (/home/cz4rs/code/vt/build/examples/hello_world/hello_world+0x1661377) in operator new(unsigned long)
==40784==ABORTING
Describe the bug When creating custom
AppConfig
, includingvt/configs/arguments/app_config.h
(before othervt
includes) causes tests and examples to crash.To Reproduce These changes will crash (
std::bad_alloc
thrown):GDB backtrace
``` terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Program received signal SIGABRT, Aborted. __pthread_kill_implementation (threadid=If the header is included after
vt/transport.h
, the example runs just fine:Additional context