** Changed in: mir Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to mir in Ubuntu. https://bugs.launchpad.net/bugs/1628794
Title: Valgrind failure on mir_acceptance_tests - leak on incoming buffer in Requests::free_buffer(int) Status in Mir: Fix Released Status in mir package in Ubuntu: Fix Released Bug description: Valgrind failure on mir_acceptance_tests - leak in mir::client::BufferVault::wire_transfer_inbound(int) It's happened twice now. Yesterday on kdub's branch and today on mine: 05:20:36 9: ==2515== 80 (32 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 20 of 37 05:20:36 9: ==2515== at 0x4C2D1AF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) 05:20:36 9: ==2515== by 0x54C74F2: NewCallback<mir::protobuf::Void *> (callback.h:412) 05:20:36 9: ==2515== by 0x54C74F2: (anonymous namespace)::Requests::free_buffer(int) (buffer_stream.cpp:274) 05:20:36 9: ==2515== by 0x54CDB88: free_buffer (buffer_vault.cpp:111) 05:20:36 9: ==2515== by 0x54CDB88: mir::client::BufferVault::wire_transfer_inbound(int) (buffer_vault.cpp:265) 05:20:36 9: ==2515== by 0x54D11DD: operator() (functional:2136) 05:20:36 9: ==2515== by 0x54D11DD: mir::client::AtomicCallback<>::operator()() const (atomic_callback.h:56) 05:20:36 9: ==2515== by 0x54E1128: mir::client::rpc::MirProtobufRpcChannel::process_event_sequence(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (mir_protobuf_rpc_channel.cpp:341) 05:20:36 9: ==2515== by 0x54E2208: mir::client::rpc::MirProtobufRpcChannel::on_data_available() (mir_protobuf_rpc_channel.cpp:470) 05:20:36 9: ==2515== by 0x54E68AD: operator()<std::shared_ptr<mir::client::rpc::StreamTransport::Observer> > (stream_socket_transport.cpp:40) 05:20:36 9: ==2515== by 0x54E68AD: std::_Function_handler<void (std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&), mir::client::rpc::TransportObservers::on_data_available()::$_0>::_M_invoke(std::_Any_data const&, std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&) (functional:1740) 05:20:36 9: ==2515== by 0x54E6B7F: operator() (functional:2136) 05:20:36 9: ==2515== by 0x54E6B7F: mir::ThreadSafeList<std::shared_ptr<mir::client::rpc::StreamTransport::Observer> >::for_each(std::function<void (std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&)> const&) (thread_safe_list.h:80) 05:20:36 9: ==2515== by 0x54E679D: on_data_available (stream_socket_transport.cpp:40) 05:20:36 9: ==2515== by 0x54E679D: mir::client::rpc::StreamSocketTransport::dispatch(unsigned int) (stream_socket_transport.cpp:208) 05:20:36 9: ==2515== by 0x5B700E3: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:210) 05:20:36 9: ==2515== by 0x5B700E3: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:210) 05:20:36 9: ==2515== by 0x5B726B6: (anonymous namespace)::dispatch_loop(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>, std::shared_ptr<mir::dispatch::Dispatchable>, std::function<void ()> const&) (threaded_dispatcher.cpp:211) 05:20:36 9: ==2515== by 0x5B7684E: void std::_Bind_simple<void (*(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>, std::shared_ptr<mir::dispatch::MultiplexingDispatchable>, std::function<void ()>))(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>, std::shared_ptr<mir::dispatch::Dispatchable>, std::function<void ()> const&)>::_M_invoke<0ul, 1ul, 2ul, 3ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) (functional:1399) 05:20:36 9: ==2515== by 0x695350E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22) 05:20:36 9: ==2515== by 0x6E3E709: start_thread (pthread_create.c:333) 05:20:36 9: ==2515== by 0x715D0FE: clone (clone.S:105) 05:20:36 9: ==2515== 05:20:36 9: ==2515== 80 (32 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 21 of 37 05:20:36 9: ==2515== at 0x4C2D1AF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) 05:20:36 9: ==2515== by 0x54C7363: NewCallback<mir::protobuf::Void *> (callback.h:412) 05:20:36 9: ==2515== by 0x54C7363: (anonymous namespace)::Requests::allocate_buffer(mir::geometry::Size, MirPixelFormat, int) (buffer_stream.cpp:262) 05:20:36 9: ==2515== by 0x54CDBE8: alloc_buffer (buffer_vault.cpp:106) 05:20:36 9: ==2515== by 0x54CDBE8: mir::client::BufferVault::wire_transfer_inbound(int) (buffer_vault.cpp:267) 05:20:36 9: ==2515== by 0x54D11DD: operator() (functional:2136) 05:20:36 9: ==2515== by 0x54D11DD: mir::client::AtomicCallback<>::operator()() const (atomic_callback.h:56) 05:20:36 9: ==2515== by 0x54E1128: mir::client::rpc::MirProtobufRpcChannel::process_event_sequence(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (mir_protobuf_rpc_channel.cpp:341) 05:20:36 9: ==2515== by 0x54E2208: mir::client::rpc::MirProtobufRpcChannel::on_data_available() (mir_protobuf_rpc_channel.cpp:470) 05:20:36 9: ==2515== by 0x54E68AD: operator()<std::shared_ptr<mir::client::rpc::StreamTransport::Observer> > (stream_socket_transport.cpp:40) 05:20:36 9: ==2515== by 0x54E68AD: std::_Function_handler<void (std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&), mir::client::rpc::TransportObservers::on_data_available()::$_0>::_M_invoke(std::_Any_data const&, std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&) (functional:1740) 05:20:36 9: ==2515== by 0x54E6B7F: operator() (functional:2136) 05:20:36 9: ==2515== by 0x54E6B7F: mir::ThreadSafeList<std::shared_ptr<mir::client::rpc::StreamTransport::Observer> >::for_each(std::function<void (std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&)> const&) (thread_safe_list.h:80) 05:20:36 9: ==2515== by 0x54E679D: on_data_available (stream_socket_transport.cpp:40) 05:20:36 9: ==2515== by 0x54E679D: mir::client::rpc::StreamSocketTransport::dispatch(unsigned int) (stream_socket_transport.cpp:208) 05:20:36 9: ==2515== by 0x5B700E3: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:210) 05:20:36 9: ==2515== by 0x5B700E3: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:210) 05:20:36 9: ==2515== by 0x5B726B6: (anonymous namespace)::dispatch_loop(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>, std::shared_ptr<mir::dispatch::Dispatchable>, std::function<void ()> const&) (threaded_dispatcher.cpp:211) 05:20:36 9: ==2515== by 0x5B7684E: void std::_Bind_simple<void (*(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>, std::shared_ptr<mir::dispatch::MultiplexingDispatchable>, std::function<void ()>))(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>, std::shared_ptr<mir::dispatch::Dispatchable>, std::function<void ()> const&)>::_M_invoke<0ul, 1ul, 2ul, 3ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) (functional:1399) 05:20:36 9: ==2515== by 0x695350E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22) 05:20:36 9: ==2515== by 0x6E3E709: start_thread (pthread_create.c:333) 05:20:36 9: ==2515== by 0x715D0FE: clone (clone.S:105) 05:20:36 9: ==2515== 05:20:36 9: ==2515== LEAK SUMMARY: 05:20:36 9: ==2515== definitely lost: 64 bytes in 2 blocks 05:20:36 9: ==2515== indirectly lost: 96 bytes in 2 blocks 05:20:36 9: ==2515== possibly lost: 0 bytes in 0 blocks 05:20:36 9: ==2515== still reachable: 26,125 bytes in 34 blocks 05:20:36 9: ==2515== suppressed: 0 bytes in 0 blocks 05:20:36 9: ==2515== Reachable blocks (those to which a pointer was found) are not shown. 05:20:36 9: ==2515== To see them, rerun with: --leak-check=full --show-leak-kinds=all 05:20:36 9: ==2515== 05:20:36 9: ==2515== For counts of detected and suppressed errors, rerun with: -v 05:20:36 9: ==2515== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) 05:20:36 9/32 Test #9: mir_acceptance_tests ..............................***Failed 164.56 sec https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2341/consoleFull https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2363/consoleFull To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1628794/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp