patrickfrey / strusWebService

web service (HTTP/JSON) to use the strus API as a service
http://project-strus.net
Mozilla Public License 2.0
4 stars 0 forks source link

valgrind shows tons of errors #52

Closed andreasbaumann closed 6 years ago

andreasbaumann commented 6 years ago

mainly in cppcms.

andreasbaumann commented 6 years ago

some in leveldb.

andreasbaumann commented 6 years ago

Most are errors on startup and shutdown like:

==29423== Use of uninitialised value of size 8
==29423==    at 0x4E8D3B0: booster::aio::io_service::set_timer_event(booster::ptime const&, booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8AC79: booster::aio::deadline_timer::async_wait(booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x52E1FBD: cppcms::impl::cgi::http_watchdog::check(booster::system::error_code const&) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x52E2ED6: cppcms::impl::cgi::http_api_factory(cppcms::service&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x51EDC57: cppcms::service::setup_acceptor(cppcms::json::value const&, int, int) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x51EE208: cppcms::service::start_acceptor(bool) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x51EFC08: cppcms::service::run() (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x40AD4E: main (main.cpp:110)
==29423== 
==29423== Use of uninitialised value of size 8
==29423==    at 0x4E8D4D1: booster::aio::io_service::set_timer_event(booster::ptime const&, booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8AC79: booster::aio::deadline_timer::async_wait(booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x52E1FBD: cppcms::impl::cgi::http_watchdog::check(booster::system::error_code const&) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x52E2ED6: cppcms::impl::cgi::http_api_factory(cppcms::service&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x51EDC57: cppcms::service::setup_acceptor(cppcms::json::value const&, int, int) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x51EE208: cppcms::service::start_acceptor(bool) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x51EFC08: cppcms::service::run() (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x40AD4E: main (main.cpp:110)
==29423== 
==29423== Use of uninitialised value of size 8
==29423==    at 0x4E90812: booster::aio::event_loop_impl::run_one(booster::aio::reactor::event*, unsigned long) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8D7F7: booster::aio::io_service::run() (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x51EFCFF: cppcms::service::run() (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x40AD4E: main (main.cpp:110)
==29423== 
==29423== Use of uninitialised value of size 8
==29423==    at 0x4E8D3B0: booster::aio::io_service::set_timer_event(booster::ptime const&, booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8AC79: booster::aio::deadline_timer::async_wait(booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x52E1FBD: cppcms::impl::cgi::http_watchdog::check(booster::system::error_code const&) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x4E90222: booster::aio::event_loop_impl::run_one(booster::aio::reactor::event*, unsigned long) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8D7F7: booster::aio::io_service::run() (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x51EFCFF: cppcms::service::run() (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x40AD4E: main (main.cpp:110)
==29423== 
==29423== Use of uninitialised value of size 8
==29423==    at 0x4E8D4D1: booster::aio::io_service::set_timer_event(booster::ptime const&, booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8AC79: booster::aio::deadline_timer::async_wait(booster::callback<void (booster::system::error_code const&)> const&) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x52E1FBD: cppcms::impl::cgi::http_watchdog::check(booster::system::error_code const&) (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x4E90222: booster::aio::event_loop_impl::run_one(booster::aio::reactor::event*, unsigned long) (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x4E8D7F7: booster::aio::io_service::run() (in /usr/lib/libbooster.so.0.0.3)
==29423==    by 0x51EFCFF: cppcms::service::run() (in /usr/lib/libcppcms.so.1.0.5)
==29423==    by 0x40AD4E: main (main.cpp:110)
==29423== 

Those are quite harmless. Then there are leaks we must check.

andreasbaumann commented 6 years ago

Quite a big leak in the webservice itself (inner strus object management):

==30303== 16,777,360 bytes in 1 blocks are possibly lost in loss record 404 of 404
==30303==    at 0x4C2B0D8: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30303==    by 0x555747D: strus::StorageClient::StorageClient(strus::DatabaseClientInterface*, char const*, strus::StatisticsProcessorInterface const*, strus::ErrorBufferInterface*) (storageClient.cpp:81)
==30303==    by 0x5550FC1: strus::Storage::createClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, strus::DatabaseClientInterface*, strus::StatisticsProcessorInterface const*) const (storage.cpp:101)
==30303==    by 0x412522: apps::strusWebService::getStorageClientInterface(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (strusWebService.cpp:122)
==30303==    by 0x455A71: apps::transaction::begin_cmd(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) (transaction.cpp:91)
==30303==    by 0x456DE6: apps::transaction::begin_payload_cmd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cpp:43)
==30303==    by 0x4589E4: operator() (url_dispatcher.h:233)
==30303==    by 0x4589E4: booster::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>::callable_impl<void, cppcms::url_dispatcher::binder1<apps::transaction> >::call(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (function.h:178)
==30303==    by 0x522C909: ??? (in /usr/lib/libcppcms.so.1.0.5)
==30303==    by 0x5228A09: cppcms::url_dispatcher::dispatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (in /usr/lib/libcppcms.so.1.0.5)
==30303==    by 0x51E836E: cppcms::application::main(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (in /usr/lib/libcppcms.so.1.0.5)
==30303==    by 0x521C79D: cppcms::http::context::dispatch(booster::intrusive_ptr<cppcms::application>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (in /usr/lib/libcppcms.so.1.0.5)
==30303==    by 0x521E50D: booster::function<void ()>::callable_impl<void, cppcms_boost::_bi::bind_t<void, void (*)(booster::intrusive_ptr<cppcms::application>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool), cppcms_boost::_bi::list3<cppcms_boost::_bi::value<booster::intrusive_ptr<cppcms::application> >, cppcms_boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, cppcms_boost::_bi::value<bool> > > >::call() (in /usr/lib/libcppcms.so.1.0.5)
==30303==    by 0x52205D0: cppcms::impl::thread_pool::worker() (in /usr/lib/libcppcms.so.1.0.5)
==30303==    by 0x4F200E9: booster_thread_func (in /usr/lib/libbooster.so.0.0.3)
==30303==    by 0x7FB9483: start_thread (in /usr/lib/libpthread-2.23.so)
==30303==    by 0x7CF86DC: clone (in /usr/lib/libc-2.23.so)
patrickfrey commented 6 years ago

Not relevant anymore.