Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change the way we're inserting elements in this map
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 29 Oct 2023 16:04:06 +0000 (17:04 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 29 Oct 2023 16:04:10 +0000 (17:04 +0100)
commit709596538aad175a7b69477ea32c90050e856844
treef042b04eacf93f2c5d5151f8b016c9f5069fb127
parent3b86edb632d25c7c2f8bee7d8d4e173ff06e3d87
Change the way we're inserting elements in this map

This is an attempt to work around this segfaut on FreeBSD:

==72834== Invalid read of size 1
==72834==    at 0x4A09B22: __is_long (include/c++/v1/string:1445)
==72834==    by 0x4A09B22: __get_pointer (include/c++/v1/string:1544)
==72834==    by 0x4A09B22: data (include/c++/v1/string:1251)
==72834==    by 0x4A09B22: operator basic_string_view (include/c++/v1/string:879)
==72834==    by 0x4A09B22: compare (include/c++/v1/string:3845)
==72834==    by 0x4A09B22: operator<<char, std::__1::char_traits<char>, std::__1::allocator<char> > (include/c++/v1/string:4072)
==72834==    by 0x4A09B22: operator()<const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > &, const std::__1::basic_string<char, std::__1::char_traits< char>, std::__1::allocator<char> > &> (include/c++/v1/__functional/operations.h:499)
==72834==    by 0x4A09B22: operator() (include/c++/v1/map:577)
==72834==    by 0x4A09B22: std::__1::__tree_node_base<void*>*& std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >,  boost::intrusive_ptr<simgrid::kernel::resource::DiskImpl> >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__ value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::intrusive_ptr<simgrid::kernel::resource::DiskImpl> >, std::__1::less<void>, true>, st d::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::intrusive_ptr<simgrid::kernel::resource::DiskImpl> > >  >::__find_equal<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>*&, std::__1::basic_strin g<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) (include/c++/v1/__tree:1977)
==72834==    by 0x4A091E0: __emplace_unique_key_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, const std::__1::piecewise_construct_t &, std::__1: :tuple<const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > &>, std::__1::tuple<> > (include/c++/v1/__tree:2093)
==72834==    by 0x4A091E0: std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::intrusive_ptr<simgrid::kernel::resource::DiskImpl>, std ::__1::less<void>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::intrusive_ptr<simgrid::kernel::resou rce::DiskImpl> > > >::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) (include/c++/v1/map:1588)
==72834==    by 0x498CD41: UnknownInlinedFun (HostImpl.cpp:240)
==72834==    by 0x498CD41: operator() (s4u_Host.cpp:356)
==72834==    by 0x498CD41: simcall_answered<(lambda at /builds/workspace/SimGrid/build_mode/Debug/node/freebsd/build/simgrid-3.34.1/src/s4u/s4u_Host.cpp:354:42)> (simix.hpp:49)
==72834==    by 0x498CD41: simgrid::s4u::Host::create_disk(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double, double) (s4u_Host.cpp:354)
==72834==    by 0x4AE9A23: simgrid::plugin::Jbod::create_jbod(simgrid::s4u::NetZone*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double, un signed int, simgrid::plugin::Jbod::RAID, double, double) (jbod.cpp:30)
==72834==    by 0x401C2A: main (examples/cpp/plugin-jbod/s4u-plugin-jbod.cpp:43)
==72834==  Address 0xffffffff00000023 is not stack'd, malloc'd or (recently) free'd
src/kernel/resource/HostImpl.cpp