** Also affects: mir (Ubuntu)
   Importance: Undecided
       Status: New

-- 
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 Committed
Status in mir package in Ubuntu:
  New

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

Reply via email to