Skip to content
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

Potentially unsafe code in parser #136

Open
s-sajid-ali opened this issue Feb 22, 2023 · 0 comments
Open

Potentially unsafe code in parser #136

s-sajid-ali opened this issue Feb 22, 2023 · 0 comments

Comments

@s-sajid-ali
Copy link
Member

s-sajid-ali commented Feb 22, 2023

While trying to debug an unrelated error, I observed the following errors from a build with ASAN on the wilson cluster:


gridx: 8
gridy: 8
gridz: 8
macroparticles: 1024
real_particles: 2.94e+12
=================================================================
==24348==ERROR: AddressSanitizer: heap-use-after-free on address 0x60700001fa98 at pc 0x7ffff448e891 bp 0x7fffffff6e80 sp 0x7fffffff6e78
READ of size 1 at 0x60700001fa98 thread T0
    #0 0x7ffff448e890 in synergia::nop_t::operator=(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125
    #1 0x7ffff448e90b in boost::recursive_wrapper<synergia::nop_t>::assign(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:143
    #2 0x7ffff448d325 in boost::recursive_wrapper<synergia::nop_t>::operator=(boost::recursive_wrapper<synergia::nop_t> const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:60
    #3 0x7ffff448ba8d in void boost::detail::variant::assign_storage::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:546
    #4 0x7ffff448a2b6 in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #5 0x7ffff4487d7a in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xe8d7a)
    #6 0x7ffff4470356 in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant_assign(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xd1356)
    #7 0x7ffff446a0bc in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::operator=(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2167
    #8 0x7ffff448e85d in synergia::nop_t::operator=(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125
    #9 0x7ffff448e90b in boost::recursive_wrapper<synergia::nop_t>::assign(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:143
    #10 0x7ffff448d325 in boost::recursive_wrapper<synergia::nop_t>::operator=(boost::recursive_wrapper<synergia::nop_t> const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:60
    #11 0x7ffff448ba8d in void boost::detail::variant::assign_storage::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:546
    #12 0x7ffff448a2b6 in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #13 0x7ffff4487d7a in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xe8d7a)
    #14 0x7ffff4470356 in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant_assign(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xd1356)
    #15 0x7ffff446a0bc in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::operator=(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2167
    #16 0x7ffff40802d3 in synergia::mx_command::execute(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:429
    #17 0x7ffff407ed55 in synergia::mx_command::interpret(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:386
    #18 0x7ffff4086a4d in synergia::mx_statement::interpret(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:783
    #19 0x7ffff4087440 in synergia::mx_tree::interpret(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:815
    #20 0x7ffff3e8d292 in synergia::parse_madx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, synergia::MadX&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_parse.cc:709
    #21 0x7ffff4453bdf in MadX_reader::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/madx_reader.cc:242
    #22 0x5d01d6 in get_lattice() /wclustre/accelsim/sajid/packages/synergia2/examples/fodo_cxx/fodo_cxx.cc:48
    #23 0x5d143c in run(Fodo_cxx_options) /wclustre/accelsim/sajid/packages/synergia2/examples/fodo_cxx/fodo_cxx.cc:90
    #24 0x5d2d5f in main /wclustre/accelsim/sajid/packages/synergia2/examples/fodo_cxx/fodo_cxx.cc:189
    #25 0x7fffe50e9554 in __libc_start_main (/lib64/libc.so.6+0x22554)
    #26 0x5cf998  (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x5cf998)

0x60700001fa98 is located 72 bytes inside of 80-byte region [0x60700001fa50,0x60700001faa0)
freed by thread T0 here:
    #0 0x7ffff75f5ba8 in operator delete(void*, unsigned long) ../../../../gcc-12.2.0/libsanitizer/asan/asan_new_delete.cpp:164
    #1 0x677e57 in void boost::checked_delete<synergia::nop_t>(synergia::nop_t*) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x677e57)
    #2 0x666b0f in boost::recursive_wrapper<synergia::nop_t>::~recursive_wrapper() (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x666b0f)
    #3 0x64ab60 in void boost::detail::variant::destroyer::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x64ab60)
    #4 0x62bab9 in boost::detail::variant::destroyer::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::destroyer, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::destroyer&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x62bab9)
    #5 0x61944b in boost::detail::variant::destroyer::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::destroyer, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::destroyer&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x61944b)
    #6 0x5f4a18 in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::destroy_content() (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/examples/fodo_cxx/fodo_cxx+0x5f4a18)
    #7 0x7ffff448d5b9 in void boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner::assign_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mpl_::bool_<false>, mpl_::bool_<true>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:1843
    #8 0x7ffff448bcaa in void boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner::internal_visit<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:1919
    #9 0x7ffff448a3aa in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner, void const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(int, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner&, void const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #10 0x7ffff4487e97 in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner::result_type boost::detail::variant::visitation_impl_invoke<boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner, void const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::assigner&, void const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xe8e97)
    #11 0x7ffff44707cc in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant_assign(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xd17cc)
    #12 0x7ffff446a0bc in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::operator=(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2167
    #13 0x7ffff448e85d in synergia::nop_t::operator=(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125
    #14 0x7ffff448e90b in boost::recursive_wrapper<synergia::nop_t>::assign(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:143
    #15 0x7ffff448d325 in boost::recursive_wrapper<synergia::nop_t>::operator=(boost::recursive_wrapper<synergia::nop_t> const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:60
    #16 0x7ffff448ba8d in void boost::detail::variant::assign_storage::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:546
    #17 0x7ffff448a2b6 in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #18 0x7ffff4487d7a in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xe8d7a)
    #19 0x7ffff4470356 in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant_assign(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xd1356)
    #20 0x7ffff446a0bc in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::operator=(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2167
    #21 0x7ffff448e85d in synergia::nop_t::operator=(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125
    #22 0x7ffff448e90b in boost::recursive_wrapper<synergia::nop_t>::assign(synergia::nop_t const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:143
    #23 0x7ffff448d325 in boost::recursive_wrapper<synergia::nop_t>::operator=(boost::recursive_wrapper<synergia::nop_t> const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:60
    #24 0x7ffff448ba8d in void boost::detail::variant::assign_storage::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:546
    #25 0x7ffff448a2b6 in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #26 0x7ffff4487d7a in boost::detail::variant::assign_storage::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::assign_storage, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::assign_storage&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xe8d7a)
    #27 0x7ffff4470356 in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant_assign(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice.so+0xd1356)
    #28 0x7ffff446a0bc in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::operator=(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2167
    #29 0x7ffff40802d3 in synergia::mx_command::execute(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:429

previously allocated by thread T0 here:
    #0 0x7ffff75f4ca8 in operator new(unsigned long) ../../../../gcc-12.2.0/libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x7ffff7173636 in boost::recursive_wrapper<synergia::nop_t>::recursive_wrapper(boost::recursive_wrapper<synergia::nop_t>&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:129
    #2 0x7ffff7172202 in void boost::detail::variant::move_into::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:495
    #3 0x7ffff7170a8e in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::move_into, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::move_into&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #4 0x7ffff716f3d0 in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::move_into, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::move_into&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:157
    #5 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<6l>, double, boost::mpl::l_item<mpl_::long_<5l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<4l>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::mpl::l_item<mpl_::long_<3l>, boost::recursive_wrapper<synergia::nop_t>, boost::mpl::l_item<mpl_::long_<2l>, boost::recursive_wrapper<synergia::uop_t>, boost::mpl::l_item<mpl_::long_<1l>, boost::recursive_wrapper<synergia::bop_t>, boost::mpl::l_end> > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::move_into, void*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, int, boost::detail::variant::move_into&, void*, mpl_::bool_<false>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<6l>, double, boost::mpl::l_item<mpl_::long_<5l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<4l>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::mpl::l_item<mpl_::long_<3l>, boost::recursive_wrapper<synergia::nop_t>, boost::mpl::l_item<mpl_::long_<2l>, boost::recursive_wrapper<synergia::uop_t>, boost::mpl::l_item<mpl_::long_<1l>, boost::recursive_wrapper<synergia::bop_t>, boost::mpl::l_end> > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:238
    #6 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::internal_apply_visitor_impl<boost::detail::variant::move_into, void*>(int, int, boost::detail::variant::move_into&, void*) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2338
    #7 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::internal_apply_visitor<boost::detail::variant::move_into>(boost::detail::variant::move_into&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2350
    #8 0x7ffff716b7ca in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:1774
    #9 0x7ffff717359b in synergia::nop_t::nop_t(synergia::nop_t&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125
    #10 0x7ffff717365e in boost::recursive_wrapper<synergia::nop_t>::recursive_wrapper(boost::recursive_wrapper<synergia::nop_t>&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:129
    #11 0x7ffff7172202 in void boost::detail::variant::move_into::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:495
    #12 0x7ffff7170a8e in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::move_into, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::move_into&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #13 0x7ffff716f3d0 in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::move_into, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::move_into&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:157
    #14 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<6l>, double, boost::mpl::l_item<mpl_::long_<5l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<4l>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::mpl::l_item<mpl_::long_<3l>, boost::recursive_wrapper<synergia::nop_t>, boost::mpl::l_item<mpl_::long_<2l>, boost::recursive_wrapper<synergia::uop_t>, boost::mpl::l_item<mpl_::long_<1l>, boost::recursive_wrapper<synergia::bop_t>, boost::mpl::l_end> > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::move_into, void*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, int, boost::detail::variant::move_into&, void*, mpl_::bool_<false>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<6l>, double, boost::mpl::l_item<mpl_::long_<5l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<4l>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::mpl::l_item<mpl_::long_<3l>, boost::recursive_wrapper<synergia::nop_t>, boost::mpl::l_item<mpl_::long_<2l>, boost::recursive_wrapper<synergia::uop_t>, boost::mpl::l_item<mpl_::long_<1l>, boost::recursive_wrapper<synergia::bop_t>, boost::mpl::l_end> > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:238
    #15 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::internal_apply_visitor_impl<boost::detail::variant::move_into, void*>(int, int, boost::detail::variant::move_into&, void*) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2338
    #16 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::internal_apply_visitor<boost::detail::variant::move_into>(boost::detail::variant::move_into&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2350
    #17 0x7ffff716b7ca in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:1774
    #18 0x7ffff717359b in synergia::nop_t::nop_t(synergia::nop_t&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125
    #19 0x7ffff717365e in boost::recursive_wrapper<synergia::nop_t>::recursive_wrapper(boost::recursive_wrapper<synergia::nop_t>&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/recursive_wrapper.hpp:129
    #20 0x7ffff7172202 in void boost::detail::variant::move_into::internal_visit<boost::recursive_wrapper<synergia::nop_t> >(boost::recursive_wrapper<synergia::nop_t>&, int) const /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:495
    #21 0x7ffff7170a8e in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::move_into, void*, boost::recursive_wrapper<synergia::nop_t> >(int, boost::detail::variant::move_into&, void*, boost::recursive_wrapper<synergia::nop_t>*, mpl_::bool_<true>) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:117
    #22 0x7ffff716f3d0 in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::move_into, void*, boost::recursive_wrapper<synergia::nop_t>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, boost::detail::variant::move_into&, void*, boost::recursive_wrapper<synergia::nop_t>*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, int) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:157
    #23 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<6l>, double, boost::mpl::l_item<mpl_::long_<5l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<4l>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::mpl::l_item<mpl_::long_<3l>, boost::recursive_wrapper<synergia::nop_t>, boost::mpl::l_item<mpl_::long_<2l>, boost::recursive_wrapper<synergia::uop_t>, boost::mpl::l_item<mpl_::long_<1l>, boost::recursive_wrapper<synergia::bop_t>, boost::mpl::l_end> > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::move_into, void*, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_>(int, int, boost::detail::variant::move_into&, void*, mpl_::bool_<false>, boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<6l>, double, boost::mpl::l_item<mpl_::long_<5l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<4l>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::mpl::l_item<mpl_::long_<3l>, boost::recursive_wrapper<synergia::nop_t>, boost::mpl::l_item<mpl_::long_<2l>, boost::recursive_wrapper<synergia::uop_t>, boost::mpl::l_item<mpl_::long_<1l>, boost::recursive_wrapper<synergia::bop_t>, boost::mpl::l_end> > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/detail/visitation_impl.hpp:238
    #24 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::internal_apply_visitor_impl<boost::detail::variant::move_into, void*>(int, int, boost::detail::variant::move_into&, void*) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2338
    #25 0x7ffff716b7ca in boost::detail::variant::move_into::result_type boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::internal_apply_visitor<boost::detail::variant::move_into>(boost::detail::variant::move_into&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:2350
    #26 0x7ffff716b7ca in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >::variant(boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> >&&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/utils/boost/variant/variant.hpp:1774
    #27 0x7ffff408b78a in boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > std::any_cast<boost::variant<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::recursive_wrapper<synergia::nop_t>, boost::recursive_wrapper<synergia::uop_t>, boost::recursive_wrapper<synergia::bop_t> > >(std::any&&) (/wclustre/accelsim/sajid/packages/synergia2/build_cpu/src/synergia/lattice/libsynergia_lattice_hostonly.so+0x82e78a)
    #28 0x7ffff408028a in synergia::mx_command::execute(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:422
    #29 0x7ffff407ed55 in synergia::mx_command::interpret(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:386
    #30 0x7ffff4086a4d in synergia::mx_statement::interpret(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:783
    #31 0x7ffff4087440 in synergia::mx_tree::interpret(synergia::MadX&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_tree.cc:815
    #32 0x7ffff3e8d292 in synergia::parse_madx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, synergia::MadX&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_parse.cc:709
    #33 0x7ffff4453bdf in MadX_reader::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/madx_reader.cc:242
    #34 0x5d01d6 in get_lattice() /wclustre/accelsim/sajid/packages/synergia2/examples/fodo_cxx/fodo_cxx.cc:48
    #35 0x5d143c in run(Fodo_cxx_options) /wclustre/accelsim/sajid/packages/synergia2/examples/fodo_cxx/fodo_cxx.cc:90
    #36 0x5d2d5f in main /wclustre/accelsim/sajid/packages/synergia2/examples/fodo_cxx/fodo_cxx.cc:189
    #37 0x7fffe50e9554 in __libc_start_main (/lib64/libc.so.6+0x22554)

SUMMARY: AddressSanitizer: heap-use-after-free /wclustre/accelsim/sajid/packages/synergia2/src/synergia/lattice/mx_expr.h:125 in synergia::nop_t::operator=(synergia::nop_t const&)
Shadow bytes around the buggy address:
  0x0c0e7fffbf00: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fa fa
  0x0c0e7fffbf10: fa fa fd fd fd fd fd fd fd fd fd fd fa fa fa fa
  0x0c0e7fffbf20: fd fd fd fd fd fd fd fd fd fd fa fa fa fa 00 00
  0x0c0e7fffbf30: 00 00 00 00 00 00 00 00 fa fa fa fa 00 00 00 00
  0x0c0e7fffbf40: 00 00 00 00 00 00 fa fa fa fa fd fd fd fd fd fd
=>0x0c0e7fffbf50: fd fd fd[fd]fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fffbf60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fffbf70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fffbf80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fffbf90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fffbfa0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
Read lattice, length: 20, 4 elements
[begin,1]  quadrupole fodo_1: at=0, k1=0.07142857142857142461, l=2, yoshida_order=2, propagator_type=yoshida
[1,end]  quadrupole fodo_1: at=0, k1=0.07142857142857142461, l=2, yoshida_order=2, propagator_type=yoshida
[begin,4]  drift fodo_2: at=2, l=8
[4,end]  drift fodo_2: at=2, l=8
[begin,1]  quadrupole fodo_3: at=10, k1=-0.07142857142857142461, l=2, yoshida_order=2, propagator_type=yoshida
[1,end]  quadrupole fodo_3: at=10, k1=-0.07142857142857142461, l=2, yoshida_order=2, propagator_type=yoshida
[begin,4]  drift fodo_4: at=12, l=8
[4,end]  drift fodo_4: at=12, l=8
Statistics before propagation
bunch means
0:  1.74912303608013e-19
1:  8.68208770935658e-21
2:  -1.90582413132218e-21
3:  -7.88799432130567e-21
4:  3.72270980318265e-19
5:  5.25425125093683e-21
bunch stds
0:  0.0055235626163768
1:  0.000437742121860758
2:  0.0027478521442124
3:  0.000437742121860758
4:  0.0128170229171487
5:  0.0001
Statistics before propagation
bunch means
0:  1.74912303608013e-19
1:  8.68208770935658e-21
2:  -1.90582413132218e-21
3:  -7.88799432130567e-21
4:  3.72270980318265e-19
5:  5.25425125093683e-21
bunch stds
0:  0.0055235626163768
1:  0.000437742121860758
2:  0.0027478521442124
3:  0.000437742121860758
4:  0.0128170229171487
5:  0.0001
Propagator: starting turn 1, final turn 15

Propagator: turn 1/inf., time = 1.263s, macroparticles = (1024) / ()

For future reference, the compile options are:

-g -O0 -fsanitize=address -fno-omit-frame-pointer -fsanitize-recover=address
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant