20:55:17 shadowm@nanacore ~/src/wesnoth % ./wesnoth-debug Battle for Wesnoth v1.13.4+dev (fe80448-Clean) Started on Thu Jun 16 21:10:16 2016 Automatically found a possible data directory at /home/shadowm/src/wesnoth Data directory: /home/shadowm/src/wesnoth User configuration directory: /home/shadowm/.wesnoth-1.13 User data directory: /home/shadowm/.wesnoth-1.13 Cache directory: /home/shadowm/.wesnoth-1.13/cache ================== WARNING: ThreadSanitizer: data race (pid=24551) Write of size 8 at 0x7d280000e9d8 by main thread: #0 recvmsg (libtsan.so.0+0x00000003f9cc) #1 pa_iochannel_read_with_ancil_data (libpulsecommon-8.0.so+0x0000000316db) #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c) #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef) #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d280000e9d8 by thread T2: #0 memcpy (libtsan.so.0+0x000000026ee1) #1 pa_srbchannel_read (libpulsecommon-8.0.so+0x0000000447ae) Location is heap block of size 152 at 0x7d280000e9c0 allocated by main thread: #0 malloc (libtsan.so.0+0x0000000268cc) #1 pa_xmalloc (libpulse.so.0+0x000000039ad6) #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c) #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef) #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Thread T2 'PulseHotplug' (tid=24563, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 (libSDL2-2.0.so.0+0x0000000c7f40) #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c) #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef) #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Write of size 1 at 0x7d280000e9e6 by main thread: #0 recvmsg (libtsan.so.0+0x00000003f9cc) #1 pa_iochannel_read_with_ancil_data (libpulsecommon-8.0.so+0x0000000316db) #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c) #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef) #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous read of size 1 at 0x7d280000e9e6 by thread T2: #0 memcpy (libtsan.so.0+0x000000026ee1) #1 (libpulsecommon-8.0.so+0x00000004311a) Location is heap block of size 152 at 0x7d280000e9c0 allocated by main thread: #0 malloc (libtsan.so.0+0x0000000268cc) #1 pa_xmalloc (libpulse.so.0+0x000000039ad6) #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c) #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef) #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Thread T2 'PulseHotplug' (tid=24563, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 (libSDL2-2.0.so.0+0x0000000c7f40) #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c) #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef) #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg ================== Setting mode to 1178x800 20160616 21:10:35 warning gui/event: Unhandled event 4352. 20160616 21:10:35 warning gui/event: Unhandled event 4352. ================== WARNING: ThreadSanitizer: data race (pid=24551) Write of size 8 at 0x7d1000004e70 by thread T4: #0 operator delete(void*) (libtsan.so.0+0x000000065c49) #1 __gnu_cxx::new_allocator, std::allocator > >::deallocate(std::__cxx11::basic_string, std::allocator >*, unsigned long) /usr/include/c++/5/ext/new_allocator.h:110 (wesnoth-debug+0x000000441fdf) #2 std::allocator_traits, std::allocator > > >::deallocate(std::allocator, std::allocator > >&, std::__cxx11::basic_string, std::allocator >*, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:517 (wesnoth-debug+0x00000043cd1f) #3 std::_Vector_base, std::allocator >, std::allocator, std::allocator > > >::_M_deallocate(std::__cxx11::basic_string, std::allocator >*, unsigned long) /usr/include/c++/5/bits/stl_vector.h:178 (wesnoth-debug+0x00000043720c) #4 void std::vector, std::allocator >, std::allocator, std::allocator > > >::_M_emplace_back_aux, std::allocator > const&>(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/vector.tcc:438 (wesnoth-debug+0x000000475a16) #5 std::vector, std::allocator >, std::allocator, std::allocator > > >::push_back(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb) #6 t_string_base::t_string_base(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf) #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2) #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35) #9 void read_compressed > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd) #10 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf) #11 game_config::config_cache::read_file(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66) #12 game_config::config_cache::read_cache(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662) #13 game_config::config_cache::load_configs(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427) #14 game_config::config_cache::get_config(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f) #15 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee) #16 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f) #17 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b) #18 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #19 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace) #20 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87) #21 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d) #22 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #23 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #24 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #25 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #26 (libboost_thread.so.1.60.0+0x00000001363c) Previous read of size 1 at 0x7d1000004e76 by main thread: [failed to restore the stack] Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*) ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Write of size 8 at 0x000001fe0340 by thread T4: #0 void std::vector, std::allocator >, std::allocator, std::allocator > > >::_M_emplace_back_aux, std::allocator > const&>(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/vector.tcc:441 (wesnoth-debug+0x000000475a22) #1 std::vector, std::allocator >, std::allocator, std::allocator > > >::push_back(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb) #2 t_string_base::t_string_base(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf) #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2) #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35) #5 void read_compressed > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd) #6 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf) #7 game_config::config_cache::read_file(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66) #8 game_config::config_cache::read_cache(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662) #9 game_config::config_cache::load_configs(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427) #10 game_config::config_cache::get_config(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f) #11 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee) #12 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f) #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b) #14 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #15 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace) #16 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87) #17 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d) #18 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #19 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #20 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #21 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #22 (libboost_thread.so.1.60.0+0x00000001363c) Previous read of size 8 at 0x000001fe0340 by main thread: [failed to restore the stack] Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fe0340 (wesnoth-debug+0x000001fe0340) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/vector.tcc:441 in void std::vector, std::allocator >, std::allocator, std::allocator > > >::_M_emplace_back_aux, std::allocator > const&>(std::__cxx11::basic_string, std::allocator > const&) ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Write of size 8 at 0x000001fe0348 by thread T4: #0 void std::vector, std::allocator >, std::allocator, std::allocator > > >::_M_emplace_back_aux, std::allocator > const&>(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/vector.tcc:442 (wesnoth-debug+0x000000475a3d) #1 std::vector, std::allocator >, std::allocator, std::allocator > > >::push_back(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb) #2 t_string_base::t_string_base(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf) #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2) #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35) #5 void read_compressed > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd) #6 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf) #7 game_config::config_cache::read_file(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66) #8 game_config::config_cache::read_cache(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662) #9 game_config::config_cache::load_configs(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427) #10 game_config::config_cache::get_config(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f) #11 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee) #12 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f) #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b) #14 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #15 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace) #16 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87) #17 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d) #18 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #19 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #20 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #21 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #22 (libboost_thread.so.1.60.0+0x00000001363c) Previous read of size 8 at 0x000001fe0348 by main thread: [failed to restore the stack] Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fe0340 (wesnoth-debug+0x000001fe0348) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/vector.tcc:442 in void std::vector, std::allocator >, std::allocator, std::allocator > > >::_M_emplace_back_aux, std::allocator > const&>(std::__cxx11::basic_string, std::allocator > const&) ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 8 at 0x7d2000098f10 by main thread: #0 memcpy (libtsan.so.0+0x000000026ee1) #1 std::__cxx11::basic_string, std::allocator >::_M_assign(std::__cxx11::basic_string, std::allocator > const&) (libstdc++.so.6+0x00000011cc92) #2 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012b3291) #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012b5785) #4 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #5 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #9 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #10 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #11 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #12 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #13 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #19 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d2000098f10 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 128 at 0x7d2000098f00 allocated by thread T4: #0 operator new(unsigned long) (libtsan.so.0+0x0000000659b3) #1 __gnu_cxx::new_allocator, std::allocator > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104 (wesnoth-debug+0x0000004463f8) #2 std::allocator_traits, std::allocator > > >::allocate(std::allocator, std::allocator > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:491 (wesnoth-debug+0x00000044201c) #3 std::_Vector_base, std::allocator >, std::allocator, std::allocator > > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170 (wesnoth-debug+0x00000043cd6e) #4 void std::vector, std::allocator >, std::allocator, std::allocator > > >::_M_emplace_back_aux, std::allocator > const&>(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/vector.tcc:412 (wesnoth-debug+0x0000004758c9) #5 std::vector, std::allocator >, std::allocator, std::allocator > > >::push_back(std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb) #6 t_string_base::t_string_base(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf) #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2) #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35) #9 void read_compressed > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd) #10 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf) #11 game_config::config_cache::read_file(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66) #12 game_config::config_cache::read_cache(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662) #13 game_config::config_cache::load_configs(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427) #14 game_config::config_cache::get_config(std::__cxx11::basic_string, std::allocator > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f) #15 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee) #16 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f) #17 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b) #18 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #19 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace) #20 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87) #21 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d) #22 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #23 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #24 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #25 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #26 (libboost_thread.so.1.60.0+0x00000001363c) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26ee1) in __interceptor_memcpy ================== 20160616 21:10:36 warning general: no location found for 'data/add-ons/Era_of_Chaos/translations', skipping textdomain 20160616 21:10:36 warning general: no location found for 'data/add-ons/Orb_Test/translations', skipping textdomain ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 1 at 0x7d280000e870 by main thread: #0 get_locale src/gettext_boost.cpp:186 (wesnoth-debug+0x0000012de742) #1 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888) #2 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #4 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #5 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #9 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #10 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #11 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #12 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #13 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #19 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 1 at 0x7d280000e870 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 152 at 0x7d280000e7e0 allocated by main thread: #0 operator new(unsigned long) (libtsan.so.0+0x0000000659b3) #1 get_manager src/gettext_boost.cpp:204 (wesnoth-debug+0x0000012de7dc) #2 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:251 (wesnoth-debug+0x0000012dec2d) #3 init_locale src/wesnoth.cpp:479 (wesnoth-debug+0x00000042ab2d) #4 do_gameloop src/wesnoth.cpp:589 (wesnoth-debug+0x00000042b012) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race src/gettext_boost.cpp:186 in get_locale ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 8 at 0x7d0c00040988 by main thread: #0 bool std::has_facet >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:107 (wesnoth-debug+0x0000012dfd3b) #1 boost::locale::basic_message::str(std::locale const&, std::__cxx11::basic_string, std::allocator > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012dfb51) #2 std::__cxx11::basic_string, std::allocator > boost::locale::dgettext(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #7 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #11 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #12 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #13 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #14 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #15 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #21 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d0c00040988 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 40 at 0x7d0c00040980 allocated by thread T4: #0 operator new(unsigned long) (libtsan.so.0+0x0000000659b3) #1 std::locale::locale(std::locale const&, boost::locale::util::simple_info*) (libboost_locale.so.1.60.0+0x00000007b0fc) #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e) #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4) #8 std::__cxx11::basic_string, std::allocator > boost::detail::variant::invoke_visitor::internal_visit(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781) #9 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke_impl, void const*, t_string>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, mpl_::bool_) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681) #10 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke, void const*, t_string, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, boost::variant, std::allocator >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02) #11 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >, boost::detail::variant::invoke_visitor, void const*, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor&, void const*, mpl_::bool_, boost::variant, std::allocator >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb) #12 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor_impl, void const*>(int, int, boost::detail::variant::invoke_visitor&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b) #13 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor >(boost::detail::variant::invoke_visitor&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771) #14 config::attribute_value::string_visitor const::result_type boost::variant, std::allocator >, t_string>::apply_visitor(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2) #15 config::attribute_value::string_visitor::result_type boost::apply_visitor, std::allocator >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant, std::allocator >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624) #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f) #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199) #18 config::attribute_value::operator std::__cxx11::basic_string, std::allocator >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf) #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92) #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb) #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #23 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #24 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #25 (libboost_thread.so.1.60.0+0x00000001363c) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:107 in bool std::has_facet >(std::locale const&) ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 8 at 0x7d0c00040990 by main thread: #0 bool std::has_facet >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:108 (wesnoth-debug+0x0000012dfd62) #1 boost::locale::basic_message::str(std::locale const&, std::__cxx11::basic_string, std::allocator > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012dfb51) #2 std::__cxx11::basic_string, std::allocator > boost::locale::dgettext(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #7 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #11 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #12 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #13 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #14 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #15 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #21 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d0c00040990 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 40 at 0x7d0c00040980 allocated by thread T4: #0 operator new(unsigned long) (libtsan.so.0+0x0000000659b3) #1 std::locale::locale(std::locale const&, boost::locale::util::simple_info*) (libboost_locale.so.1.60.0+0x00000007b0fc) #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e) #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4) #8 std::__cxx11::basic_string, std::allocator > boost::detail::variant::invoke_visitor::internal_visit(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781) #9 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke_impl, void const*, t_string>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, mpl_::bool_) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681) #10 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke, void const*, t_string, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, boost::variant, std::allocator >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02) #11 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >, boost::detail::variant::invoke_visitor, void const*, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor&, void const*, mpl_::bool_, boost::variant, std::allocator >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb) #12 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor_impl, void const*>(int, int, boost::detail::variant::invoke_visitor&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b) #13 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor >(boost::detail::variant::invoke_visitor&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771) #14 config::attribute_value::string_visitor const::result_type boost::variant, std::allocator >, t_string>::apply_visitor(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2) #15 config::attribute_value::string_visitor::result_type boost::apply_visitor, std::allocator >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant, std::allocator >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624) #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f) #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199) #18 config::attribute_value::operator std::__cxx11::basic_string, std::allocator >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf) #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92) #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb) #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #23 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #24 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #25 (libboost_thread.so.1.60.0+0x00000001363c) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:108 in bool std::has_facet >(std::locale const&) ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 8 at 0x7d4c0001eb80 by main thread: #0 bool std::has_facet >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:110 (wesnoth-debug+0x0000012dfd88) #1 boost::locale::basic_message::str(std::locale const&, std::__cxx11::basic_string, std::allocator > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012dfb51) #2 std::__cxx11::basic_string, std::allocator > boost::locale::dgettext(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #7 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #11 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #12 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #13 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #14 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #15 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #21 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d4c0001eb80 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 448 at 0x7d4c0001ea00 allocated by thread T4: #0 operator new[](unsigned long) (libtsan.so.0+0x000000065a53) #1 std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) (libstdc++.so.6+0x0000000a0934) #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e) #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4) #8 std::__cxx11::basic_string, std::allocator > boost::detail::variant::invoke_visitor::internal_visit(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781) #9 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke_impl, void const*, t_string>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, mpl_::bool_) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681) #10 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke, void const*, t_string, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, boost::variant, std::allocator >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02) #11 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >, boost::detail::variant::invoke_visitor, void const*, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor&, void const*, mpl_::bool_, boost::variant, std::allocator >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb) #12 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor_impl, void const*>(int, int, boost::detail::variant::invoke_visitor&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b) #13 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor >(boost::detail::variant::invoke_visitor&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771) #14 config::attribute_value::string_visitor const::result_type boost::variant, std::allocator >, t_string>::apply_visitor(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2) #15 config::attribute_value::string_visitor::result_type boost::apply_visitor, std::allocator >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant, std::allocator >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624) #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f) #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199) #18 config::attribute_value::operator std::__cxx11::basic_string, std::allocator >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf) #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92) #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb) #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #23 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #24 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #25 (libboost_thread.so.1.60.0+0x00000001363c) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:110 in bool std::has_facet >(std::locale const&) ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 8 at 0x7d34000263d0 by main thread: #0 boost::locale::basic_message::str(std::locale const&, std::__cxx11::basic_string, std::allocator > const&) const /usr/include/boost/locale/message.hpp:374 (wesnoth-debug+0x0000012dfb6f) #1 std::__cxx11::basic_string, std::allocator > boost::locale::dgettext(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd) #2 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f) #3 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #4 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #5 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #6 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #7 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #8 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #9 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #10 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #11 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #12 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #13 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #14 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #15 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #16 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #17 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #18 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #19 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #20 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #21 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #22 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d34000263d0 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 208 at 0x7d34000263d0 allocated by thread T4: #0 operator new(unsigned long) (libtsan.so.0+0x0000000659b3) #1 boost::locale::message_format* boost::locale::gnu_gettext::create_messages_facet(boost::locale::gnu_gettext::messages_info const&) (libboost_locale.so.1.60.0+0x0000000622b2) #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e) #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4) #8 std::__cxx11::basic_string, std::allocator > boost::detail::variant::invoke_visitor::internal_visit(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781) #9 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke_impl, void const*, t_string>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, mpl_::bool_) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681) #10 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke, void const*, t_string, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, boost::variant, std::allocator >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02) #11 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >, boost::detail::variant::invoke_visitor, void const*, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor&, void const*, mpl_::bool_, boost::variant, std::allocator >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb) #12 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor_impl, void const*>(int, int, boost::detail::variant::invoke_visitor&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b) #13 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor >(boost::detail::variant::invoke_visitor&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771) #14 config::attribute_value::string_visitor const::result_type boost::variant, std::allocator >, t_string>::apply_visitor(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2) #15 config::attribute_value::string_visitor::result_type boost::apply_visitor, std::allocator >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant, std::allocator >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624) #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f) #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199) #18 config::attribute_value::operator std::__cxx11::basic_string, std::allocator >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf) #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92) #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb) #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #23 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #24 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #25 (libboost_thread.so.1.60.0+0x00000001363c) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race /usr/include/boost/locale/message.hpp:374 in boost::locale::basic_message::str(std::locale const&, std::__cxx11::basic_string, std::allocator > const&) const ================== ================== WARNING: ThreadSanitizer: data race (pid=24551) Read of size 8 at 0x7d140003ca30 by main thread: #0 memcmp (libtsan.so.0+0x00000003f327) #1 boost::locale::gnu_gettext::mo_message::domain(std::__cxx11::basic_string, std::allocator > const&) const (libboost_locale.so.1.60.0+0x000000062d1b) #2 std::__cxx11::basic_string, std::allocator > boost::locale::dgettext(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string_base::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce) #7 t_string::operator std::__cxx11::basic_string, std::allocator > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222) #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96) #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9) #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f) #11 void std::_Mem_fn_base::operator()(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54) #12 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff) #13 void std::_Bind (gui2::tloadscreen*, std::reference_wrapper)>::operator()(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc) #14 std::_Function_handler (gui2::tloadscreen*, std::reference_wrapper)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a) #15 std::function::operator()(unsigned long) const (wesnoth-debug+0x000000518f4e) #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2) #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed) #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5) #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897) #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #21 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous write of size 8 at 0x7d140003ca30 by thread T4: [failed to restore the stack] As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is heap block of size 72 at 0x7d140003ca00 allocated by thread T4: #0 operator new(unsigned long) (libtsan.so.0+0x0000000659b3) #1 (libboost_locale.so.1.60.0+0x0000000621a1) #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d) #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888) #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf) #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836) #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e) #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4) #8 std::__cxx11::basic_string, std::allocator > boost::detail::variant::invoke_visitor::internal_visit(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781) #9 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke_impl, void const*, t_string>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, mpl_::bool_) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681) #10 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl_invoke, void const*, t_string, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor&, void const*, t_string*, boost::variant, std::allocator >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02) #11 boost::detail::variant::invoke_visitor::result_type boost::detail::variant::visitation_impl, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >, boost::detail::variant::invoke_visitor, void const*, boost::variant, std::allocator >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor&, void const*, mpl_::bool_, boost::variant, std::allocator >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step, boost::blank, boost::mpl::l_item, config::attribute_value::true_false, boost::mpl::l_item, config::attribute_value::yes_no, boost::mpl::l_item, int, boost::mpl::l_item, unsigned long long, boost::mpl::l_item, double, boost::mpl::l_item, std::__cxx11::basic_string, std::allocator >, boost::mpl::l_item, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb) #12 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor_impl, void const*>(int, int, boost::detail::variant::invoke_visitor&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b) #13 boost::detail::variant::invoke_visitor::result_type boost::variant, std::allocator >, t_string>::internal_apply_visitor >(boost::detail::variant::invoke_visitor&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771) #14 config::attribute_value::string_visitor const::result_type boost::variant, std::allocator >, t_string>::apply_visitor(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2) #15 config::attribute_value::string_visitor::result_type boost::apply_visitor, std::allocator >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant, std::allocator >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624) #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f) #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199) #18 config::attribute_value::operator std::__cxx11::basic_string, std::allocator >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf) #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92) #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb) #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c) #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7) #23 std::function::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62) #24 boost::detail::thread_data >::run() (wesnoth-debug+0x000000560072) #25 (libboost_thread.so.1.60.0+0x00000001363c) Thread T4 (tid=24565, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 boost::thread::start_thread_noexcept() (libboost_thread.so.1.60.0+0x000000012038) #2 boost::thread::thread&>(std::function&) (wesnoth-debug+0x000000556507) #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef) #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd) #5 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f327) in __interceptor_memcmp ================== 20160616 21:10:37 warning config: add-on 'Orb_Test' has no _info.cfg; cannot read version info ================== WARNING: ThreadSanitizer: data race (pid=24551) Write of size 4 at 0x000001fd78d4 by main thread: #0 ~tdraw_interval_setter src/gui/widgets/window.cpp:626 (wesnoth-debug+0x000000612486) #1 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:639 (wesnoth-debug+0x000000612a49) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Previous read of size 4 at 0x000001fd78d4 by thread T1: #0 draw_timer src/gui/widgets/window.cpp:151 (wesnoth-debug+0x00000061035e) #1 (libSDL2-2.0.so.0+0x00000007b611) As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x000000041de2) #1 (libSDL2-2.0.so.0+0x0000000cc3d4) #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606) #3 gui2::tloadscreen::display(CVideo&, std::function) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29) #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315) #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa) Location is global 'gui2::(anonymous namespace)::draw_interval' of size 4 at 0x000001fd78d4 (wesnoth-debug+0x000001fd78d4) Thread T1 'SDLTimer' (tid=24553, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x000000027d7d) #1 (libSDL2-2.0.so.0+0x0000000c7f40) #2 __libc_start_main (libc.so.6+0x0000000205ef) SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:626 in ~tdraw_interval_setter ================== Checking lua scripts... ok