CI failures caused by NestedServer.applies_display_config_on_startup memory error (invalid read of size 8)

Bug #1609411 reported by Alexandros Frantzis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
New
Undecided
Unassigned
mir (Ubuntu)
New
Undecided
Unassigned

Bug Description

12:10:32 11: [ RUN ] NestedServer.applies_display_config_on_startup
12:10:32 11: [2016-08-03 12:10:32.254941] mirserver: Starting
12:10:32 11: [2016-08-03 12:10:32.256803] mirserver: Selected driver: mir:stub-graphics (version 0.25.0)
12:10:32 11: [2016-08-03 12:10:32.260847] mirserver: Using software cursor
12:10:32 11: [2016-08-03 12:10:32.282496] mirserver: Selected input driver: mir:stub-input (version: 0.25.0)
12:10:32 11: [2016-08-03 12:10:32.283421] mirserver: Mir version 0.25.0
12:10:32 11: [2016-08-03 12:10:32.332147] mirserver: Starting
12:10:32 11: [2016-08-03 12:10:32.454335] mirserver: Using nested cursor
12:10:32 11: [2016-08-03 12:10:32.504765] mirserver: Initial display configuration:
12:10:32 11: [2016-08-03 12:10:32.505625] mirserver: 1.1: VGA 0.0" 0x0mm
12:10:32 11: [2016-08-03 12:10:32.505887] mirserver: Current mode 640x480 60.00Hz
12:10:32 11: [2016-08-03 12:10:32.506133] mirserver: Preferred mode 640x480 60.00Hz
12:10:32 11: [2016-08-03 12:10:32.506341] mirserver: Logical position +0+0
12:10:32 11: [2016-08-03 12:10:32.506978] mirserver: 1.2: VGA 0.0" 0x0mm
12:10:32 11: [2016-08-03 12:10:32.507230] mirserver: Current mode 1920x1080 60.00Hz
12:10:32 11: [2016-08-03 12:10:32.507475] mirserver: Preferred mode 1920x1080 60.00Hz
12:10:32 11: [2016-08-03 12:10:32.507690] mirserver: Logical position +640+0
12:10:32 11: [2016-08-03 12:10:32.521401] mirserver: Mir version 0.25.0
12:10:32 11: [2016-08-03 12:10:32.650729] mirserver: Stopping
12:10:32 11: ==11247== Thread 11 Input dispatch:
12:10:32 11: ==11247== Invalid read of size 8
12:10:32 11: ==11247== at 0x4116330: mir::graphics::nested::detail::DisplayBuffer::event_thunk(MirSurface*, MirEvent const*, void*) (display_buffer.cpp:109)
12:10:32 11: ==11247== by 0x4E6BDBD: std::_Function_handler<void (MirEvent*), std::function<void (MirEvent const*)> >::_M_invoke(std::_Any_data const&, MirEvent*&&) (functional:2267)
12:10:32 11: ==11247== by 0x4EA007F: mir::input::receiver::android::InputReceiver::process_and_maybe_send_event() [clone .constprop.55] (functional:2267)
12:10:32 11: ==11247== by 0x50E2209: operator() (functional:2267)
12:10:32 11: ==11247== by 0x50E2209: (anonymous namespace)::DispatchableAdaptor::dispatch(unsigned int) [clone .lto_priv.445] (multiplexing_dispatchable.cpp:57)
12:10:32 11: ==11247== by 0x50E330C: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:210)
12:10:32 11: ==11247== by 0x50E330C: mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) (multiplexing_dispatchable.cpp:210)
12:10:32 11: ==11247== by 0x50F250E: (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&) [clone .lto_priv.314] (threaded_dispatcher.cpp:211)
12:10:32 11: ==11247== by 0x50EACFD: _M_invoke (functional:1531)
12:10:32 11: ==11247== by 0x50EACFD: operator() (functional:1520)
12:10:32 11: ==11247== by 0x50EACFD: std::thread::_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:115)
12:10:32 11: ==11247== by 0x586496F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
12:10:32 11: ==11247== by 0x5D4F709: start_thread (pthread_create.c:333)
12:10:32 11: ==11247== by 0x606B6AC: clone (clone.S:109)
12:10:32 11: ==11247== Address 0xe043c20 is 64 bytes inside a block of size 136 free'd
12:10:32 11: ==11247== at 0x4C2F24B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
12:10:32 11: ==11247== by 0x41125B8: _M_release (shared_ptr_base.h:150)
12:10:33 11: ==11247== by 0x41125B8: __base_dtor (shared_ptr_base.h:659)
12:10:33 11: ==11247== by 0x41125B8: __base_dtor (shared_ptr_base.h:925)
12:10:33 11: ==11247== by 0x41125B8: __base_dtor (shared_ptr.h:93)
12:10:33 11: ==11247== by 0x41125B8: __base_dtor (stl_pair.h:96)
12:10:33 11: ==11247== by 0x41125B8: destroy (new_allocator.h:124)
12:10:33 11: ==11247== by 0x41125B8: destroy (alloc_traits.h:542)
12:10:33 11: ==11247== by 0x41125B8: std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int> const, std::shared_ptr<mir::frontend::ClientBufferTracker> >, true> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int> const, std::shared_ptr<mir::frontend::ClientBufferTracker> >, true>*) [clone .isra.50] [clone .lto_priv.2001] (hashtable_policy.h:1973)
12:10:33 11: ==11247== by 0x4119877: _M_deallocate_nodes (hashtable_policy.h:1986)
12:10:33 11: ==11247== by 0x4119877: clear (hashtable.h:1914)
12:10:33 11: ==11247== by 0x4119877: std::_Hashtable<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int>, std::pair<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int> const, std::shared_ptr<mir::frontend::ClientBufferTracker> >, std::allocator<std::pair<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int> const, std::shared_ptr<mir::frontend::ClientBufferTracker> > >, std::__detail::_Select1st, std::equal_to<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int> >, std::hash<mir::IntWrapper<mir::frontend::detail::SessionsBufferStreamIdTag, int> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::~_Hashtable() (hashtable.h:1225)
12:10:33 11: ==11247== by 0x4107FB6: __base_dtor (unordered_map.h:98)
12:10:33 11: ==11247== by 0x4107FB6: mir::graphics::nested::Display::~Display() (display.cpp:203)
12:10:33 11: ==11247== by 0x4108058: mir::graphics::nested::Display::~Display() (display.cpp:208)
12:10:33 11: ==11247== by 0x41410E5: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() [clone .constprop.1483] (shared_ptr_base.h:150)
12:10:33 11: ==11247== by 0x4141860: __base_dtor (shared_ptr_base.h:659)
12:10:33 11: ==11247== by 0x4141860: __base_dtor (shared_ptr_base.h:925)
12:10:33 11: ==11247== by 0x4141860: __base_dtor (shared_ptr.h:93)
12:10:33 11: ==11247== by 0x4141860: __base_dtor (display_server.cpp:44)
12:10:33 11: ==11247== by 0x4141860: mir::DisplayServer::~DisplayServer() [clone .constprop.1461] (display_server.cpp:200)
12:10:33 11: ==11247== by 0x40B39DF: mir::run_mir(mir::ServerConfiguration&, std::function<void (mir::DisplayServer&)>, std::function<void (int)> const&) (run_mir.cpp:98)
12:10:33 11: ==11247== by 0x4089425: mir::Server::run() (server.cpp:454)
12:10:33 11: ==11247== by 0x53C693: operator() (async_server_runner.cpp:88)
12:10:33 11: ==11247== by 0x53C693: _M_invoke<> (functional:1531)
12:10:33 11: ==11247== by 0x53C693: operator() (functional:1520)
12:10:33 11: ==11247== by 0x53C693: std::thread::_Impl<std::_Bind_simple<mir_test_framework::AsyncServerRunner::start_server()::{lambda()#2} ()> >::_M_run() (thread:115)
12:10:33 11: ==11247== by 0x586496F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
12:10:33 11: ==11247== by 0x5D4F709: start_thread (pthread_create.c:333)
12:10:33 11: ==11247== by 0x606B6AC: clone (clone.S:109)
12:10:33 11: ==11247== Block was alloc'd at
12:10:33 11: ==11247== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
12:10:33 11: ==11247== by 0x410523E: mir::graphics::nested::Display::create_surfaces(mir::graphics::DisplayConfiguration const&)::{lambda(mir::graphics::OverlappingOutputGroup const&)#1}::operator()(mir::graphics::OverlappingOutputGroup const&) const [clone .lto_priv.2107] (new_allocator.h:104)
12:10:33 11: ==11247== by 0x41DCD83: operator() (functional:2267)
12:10:33 11: ==11247== by 0x41DCD83: mir::graphics::OverlappingOutputGrouping::for_each_group(std::function<void (mir::graphics::OverlappingOutputGroup const&)> const&) (overlapping_output_grouping.cpp:92)
12:10:33 11: ==11247== by 0x412BB25: mir::graphics::nested::Display::create_surfaces(mir::graphics::DisplayConfiguration const&) [clone .constprop.842] (display.cpp:321)
12:10:33 11: ==11247== by 0x41082F1: mir::graphics::nested::Display::Display(std::shared_ptr<mir::graphics::Platform> const&, std::shared_ptr<mir::graphics::nested::HostConnection> const&, std::shared_ptr<mir::graphics::DisplayReport> const&, std::shared_ptr<mir::graphics::DisplayConfigurationPolicy> const&, std::shared_ptr<mir::graphics::GLConfig> const&) (display.cpp:200)
12:10:33 11: ==11247== by 0x4116ED6: make_module_ptr (module_deleter.h:100)
12:10:33 11: ==11247== by 0x4116ED6: mir::graphics::nested::Platform::create_display(std::shared_ptr<mir::graphics::DisplayConfigurationPolicy> const&, std::shared_ptr<mir::graphics::GLConfig> const&) (platform.cpp:51)
12:10:33 11: ==11247== by 0x40E38B5: operator() (default_configuration.cpp:151)
12:10:33 11: ==11247== by 0x40E38B5: std::_Function_handler<std::shared_ptr<mir::graphics::Display> (), mir::DefaultServerConfiguration::the_display()::{lambda()#1}>::_M_invoke(std::_Any_data const&) [clone .lto_priv.2430] (functional:1857)
12:10:33 11: ==11247== by 0x40EC042: operator() (functional:2267)
12:10:33 11: ==11247== by 0x40EC042: mir::CachedPtr<mir::MainLoop>::operator()(std::function<std::shared_ptr<mir::MainLoop> ()>) (cached_ptr.h:41)
12:10:33 11: ==11247== by 0x4134C06: mir::DefaultServerConfiguration::the_display() (default_configuration.cpp:154)
12:10:33 11: ==11247== by 0x40B36E1: __base_ctor (display_server.cpp:58)
12:10:33 11: ==11247== by 0x40B36E1: __base_ctor (display_server.cpp:189)
12:10:33 11: ==11247== by 0x40B36E1: mir::run_mir(mir::ServerConfiguration&, std::function<void (mir::DisplayServer&)>, std::function<void (int)> const&) (run_mir.cpp:98)
12:10:33 11: ==11247== by 0x4089425: mir::Server::run() (server.cpp:454)
12:10:33 11: ==11247== by 0x53C693: operator() (async_server_runner.cpp:88)
12:10:33 11: ==11247== by 0x53C693: _M_invoke<> (functional:1531)
12:10:33 11: ==11247== by 0x53C693: operator() (functional:1520)
12:10:33 11: ==11247== by 0x53C693: std::thread::_Impl<std::_Bind_simple<mir_test_framework::AsyncServerRunner::start_server()::{lambda()#2} ()> >::_M_run() (thread:115)
12:10:33 11: ==11247== by 0x586496F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22)
12:10:33 11: ==11247== by 0x5D4F709: start_thread (pthread_create.c:333)
12:10:33 11: ==11247== by 0x606B6AC: clone (clone.S:109)
12:10:33 11: ==11247==
12:10:33 11: [2016-08-03 12:10:32.774153] mirserver: Stopping
12:10:33 11: [ OK ] NestedServer.applies_display_config_on_startup (615 ms)

As seen in: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1700/consoleFull

Tags: testsfail
tags: added: testsfail
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :
Revision history for this message
Michał Sawicz (saviq) wrote :

Syncing task from Mir.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.