resilient-swarms / argos-sferes

An interface to using the ARGoS robot swarm simulator with the Sferes evolutionary algorithm framework
3 stars 0 forks source link

memory leaks #10

Closed bossdm closed 5 years ago

bossdm commented 5 years ago

Something I have observed in all the runs so far is the following output from valgrind's memory leak check:

==8875== Invalid write of size 8 ==8875== at 0x7D3FF2A: argos::CThymioProximityDefaultSensor::Update() (in /home/david/thymio/lib/argos3/libargos3plugin_simulator_thymio.so) ==8875== by 0x5CD1ED6: argos::CControllableEntity::Sense() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5D01439: argos::CSpaceNoThreads::UpdateControllableEntitiesSenseStep() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CF5C59: argos::CSpace::Update() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CB1722: argos::CSimulator::UpdateSpace() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CF4CB9: argos::CDefaultVisualization::NormalStep() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CF4C5A: argos::CDefaultVisualization::Execute() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CB16EE: argos::CSimulator::Execute() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x32131D: void sferes::FitObstacleMapElites<Params, stc::Itself>::eval<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> >(sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>&) (in /home/david/argos-sferes/bin/obsavoid_evolcvt42D) ==8875== by 0x31E3B7: void sferes::eval::Eval<Params, stc::Itself>::eval<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> >(std::vector<boost::shared_ptr<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> >, std::allocator<boost::shared_ptr<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> > > >&, unsigned long, unsigned long, sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>::fit_t const&) (in /home/david/argos-sferes/bin/obsavoid_evolcvt42D) ==8875== by 0x31BB39: void sferes::ea::Ea<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, sferes::eval::Eval<Params, stc::Itself>, boost::fusion::vector<sferes::stat::Map<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, Params, stc::Itself>, sferes::stat::MapProgress<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, Params, stc::Itself> >, sferes::modif::Dummy<stc::_Params, stc::Itself>, Params, sferes::ea::CVTMapElites<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, sferes::eval::Eval<Params, stc::Itself>, boost::fusion::vector<sferes::stat::Map<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, Params, stc::Itself>, sferes::stat::MapProgress<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, Params, stc::Itself> >, sferes::modif::Dummy<stc::_Params, stc::Itself>, Params, stc::Itself> >::_eval_pop<std::vector<boost::shared_ptr<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> >, std::allocator<boost::shared_ptr<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> > > > >(std::vector<boost::shared_ptr<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> >, std::allocator<boost::shared_ptr<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself> > > >&, unsigned long, unsigned long) (in /home/david/argos-sferes/bin/obsavoid_evolcvt42D) ==8875== by 0x318C60: sferes::ea::CVTMapElites<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, sferes::eval::Eval<Params, stc::Itself>, boost::fusion::vector<sferes::stat::Map<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, Params, stc::Itself>, sferes::stat::MapProgress<sferes::phen::Dnn<sferes::gen::Dnn<nn::Neuron<nn::PfWSum<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, nn::AfTanh<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself> >, float>, nn::Connection<sferes::phen::Parameters<sferes::gen::EvoFloat<1, ParamsDnn, stc::Itself>, sferes::fit::FitDummy<stc::_Params, stc::Itself>, ParamsDnn, stc::Itself>, float>, ParamsDnn>, sferes::FitObstacleMapElites<Params, stc::Itself>, ParamsDnn, stc::Itself>, Params, stc::Itself> >, sferes::modif::Dummy<stc::_Params, stc::Itself>, Params, stc::Itself>::random_pop() (in /home/david/argos-sferes/bin/obsavoid_evolcvt42D) ==8875== Address 0x133a0f60 is 0 bytes after a block of size 112 alloc'd ==8875== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==8875== by 0x7D38E9B: argos::CCI_ThymioProximitySensor::CCI_ThymioProximitySensor() (in /home/david/thymio/lib/argos3/libargos3plugin_simulator_thymio.so) ==8875== by 0x7D40157: argos::CThymioProximityDefaultSensor::CThymioProximityDefaultSensor() (in /home/david/thymio/lib/argos3/libargos3plugin_simulator_thymio.so) ==8875== by 0x7D401FE: CSimulatedSensorCThymioProximityDefaultSensorCreator (in /home/david/thymio/lib/argos3/libargos3plugin_simulator_thymio.so) ==8875== by 0x5CD300F: argos::CFactory<argos::CSimulatedSensor>::New(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CD16CC: argos::CControllableEntity::SetController(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ticpp::Element&) (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CD0EB1: argos::CControllableEntity::SetController(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x7D3B774: argos::CThymioEntity::CThymioEntity(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> > const&, argos::CVector3 const&, argos::CQuaternion const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/david/thymio/lib/argos3/libargos3plugin_simulator_thymio.so) ==8875== by 0x4EF999C: CObsAvoidEvolLoopFunctions::Init(ticpp::Element&) (in /home/david/argos-sferes/lib/libobsavoid_evol_loopfunctionscvt42D.so) ==8875== by 0x5CB09D2: argos::CSimulator::Init() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x5CB0557: argos::CSimulator::LoadExperiment() (in /usr/local/lib/argos3/libargos3core_simulator.so) ==8875== by 0x3013D4: main (in /home/david/argos-sferes/bin/obsavoid_evolcvt42D) ==8875==

daneshtarapore commented 5 years ago

The issue is with leaks in the argos simulator, not even the thymio plugin, as can be seen if you run valgrind on the example diffusion simulations. Would therefore suggest you report the issue on the argos repository.