https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2763/consoleFull
20:45:35 9: ==26792== in use at exit: 26,493 bytes in 42 blocks
20:45:35 9: ==26792== total heap usage: 2,789,829 allocs, 2,789,787 frees, 868,006,426 bytes allocated
20:45:35 9: ==26792==
20:45:35 9: ==26792== 160 (64 direct, 96 indirect) bytes in 2 blocks are definitely lost in loss record 26 of 37
20:45:35 9: ==26792== at 0x4C2D1AF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
20:45:35 9: ==26792== by 0x546959B: google::protobuf::Closure* google::protobuf::NewCallback<mir::protobuf::Void*>(void (*)(mir::protobuf::Void*), mir::protobuf::Void*) (callback.h:412)
20:45:35 9: ==26792== by 0x5465C38: (anonymous namespace)::Requests::free_buffer(int) (buffer_stream.cpp:90)
20:45:35 9: ==26792== by 0x546EA32: mir::client::BufferVault::free_buffer(int) (buffer_vault.cpp:111)
20:45:35 9: ==26792== by 0x546FD48: mir::client::BufferVault::wire_transfer_inbound(int) (buffer_vault.cpp:265)
20:45:35 9: ==26792== by 0x546EA7A: (anonymous namespace)::incoming_buffer(MirBuffer*, void*) (buffer_vault.cpp:54)
20:45:35 9: ==26792== by 0x547B6BF: mir::client::Buffer::Buffer(void (*)(MirBuffer*, void*), void*, int, std::shared_ptr<mir::client::ClientBuffer> const&, MirConnection*, MirBufferUsage)::$_0::operator()() const (buffer.cpp:33)
20:45:35 9: ==26792== by 0x547B51C: std::_Function_handler<void (), mir::client::Buffer::Buffer(void (*)(MirBuffer*, void*), void*, int, std::shared_ptr<mir::client::ClientBuffer> const&, MirConnection*, MirBufferUsage)::$_0>::_M_invoke(std::_Any_data const&) (functional:1740)
20:45:35 9: ==26792== by 0x53B831D: std::function<void ()>::operator()() const (functional:2136)
20:45:35 9: ==26792== by 0x547BC5C: mir::client::AtomicCallback<>::operator()() const (atomic_callback.h:56)
20:45:35 9: ==26792== by 0x547ACDE: mir::client::Buffer::received(MirBufferPackage const&) (buffer.cpp:77)
20:45:35 9: ==26792== by 0x54AEB85: 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)
20:45:35 9: ==26792== by 0x54B012F: mir::client::rpc::MirProtobufRpcChannel::on_data_available() (mir_protobuf_rpc_channel.cpp:470)
20:45:35 9: ==26792== by 0x54BDB8C: _ZZN3mir6client3rpc18TransportObservers17on_data_availableEvENK3$_0clISt10shared_ptrINS1_15StreamTransport8ObserverEEEEvT_ (stream_socket_transport.cpp:40)
20:45:35 9: ==26792== by 0x54BDA12: 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)
20:45:35 9: ==26792== by 0x54BF397: std::function<void (std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&)>::operator()(std::shared_ptr<mir::client::rpc::StreamTransport::Observer> const&) const (functional:2136)
20:45:35 9: ==26792== by 0x54BE00F: 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)
20:45:35 9: ==26792== by 0x54BC4BD: mir::client::rpc::TransportObservers::on_data_available() (stream_socket_transport.cpp:40)
20:45:35 9: ==26792== by 0x54BD7C0: mir::client::rpc::StreamSocketTransport::dispatch(unsigned int) (stream_socket_transport.cpp:208)
20:45:35 9: ==26792== by 0x4114AB8: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:140)
20:45:35 9: ==26792== by 0x54B0841: mir::client::rpc::MirProtobufRpcChannel::dispatch(unsigned int) (mir_protobuf_rpc_channel.cpp:528)
20:45:35 9: ==26792== by 0x4114AB8: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:140)
20:45:35 9: ==26792== by 0x4118B96: (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)
20:45:35 9: ==26792== by 0x4124620: 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)
20:45:35 9: ==26792== by 0x4124564: 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&)>::operator()() (functional:1389)
20:45:35 9: ==26792== by 0x4123CF8: std::thread::_State_impl<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_run() (thread:196)
20:45:35 9: ==26792== by 0x611E50E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
20:45:35 9: ==26792== by 0x6609709: start_thread (pthread_create.c:333)
20:45:35 9: ==26792== by 0x69280AE: clone (clone.S:105)
20:45:35 9: ==26792==
20:45:35 9: ==26792== 160 (64 direct, 96 indirect) bytes in 2 blocks are definitely lost in loss record 27 of 37
Duplicate of bug 1628794