shadowm icon

Untitled

shadowm | PRO | 06/19/16 08:34:40 PM UTC | 0 ⭐ | 359 👁️ | Never ⏰ | []
text |

206.47 KB

|

None

|

0 👍

/

0 👎

16:32:26 shadowm@nanacore ~/src/wesnoth % ./wesnoth-debug
Battle for Wesnoth v1.13.4+dev (c9f28e2-Clean)
Started on Sun Jun 19 16:32:30 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=7344)
  Write of size 8 at 0x7d280000e758 by main thread:
    #0 recvmsg <null> (libtsan.so.0+0x00000003f9cc)
    #1 pa_iochannel_read_with_ancil_data <null> (libpulsecommon-8.0.so+0x0000000316db)
    #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
    #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
    #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d280000e758 by thread T2:
    #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
    #1 pa_srbchannel_read <null> (libpulsecommon-8.0.so+0x0000000447ae)
   Location is heap block of size 152 at 0x7d280000e740 allocated by main thread:
    #0 malloc <null> (libtsan.so.0+0x0000000268cc)
    #1 pa_xmalloc <null> (libpulse.so.0+0x000000039ad6)
    #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
    #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
    #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Thread T2 'PulseHotplug' (tid=7362, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
    #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
    #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
    #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 1 at 0x7d280000e766 by main thread:
    #0 recvmsg <null> (libtsan.so.0+0x00000003f9cc)
    #1 pa_iochannel_read_with_ancil_data <null> (libpulsecommon-8.0.so+0x0000000316db)
    #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
    #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
    #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 1 at 0x7d280000e766 by thread T2:
    #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
    #1 pa_packet_new_data <null> (libpulsecommon-8.0.so+0x00000003d54d)
   Location is heap block of size 152 at 0x7d280000e740 allocated by main thread:
    #0 malloc <null> (libtsan.so.0+0x0000000268cc)
    #1 pa_xmalloc <null> (libpulse.so.0+0x000000039ad6)
    #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
    #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
    #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Thread T2 'PulseHotplug' (tid=7362, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
    #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
    #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
    #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg
==================
Setting mode to 1178x800
20160619 16:32:48 warning gui/event: Unhandled event 4352.
20160619 16:32:48 warning gui/event: Unhandled event 4352.
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d1000004e90 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::deallocate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) /usr/include/c++/5/ext/new_allocator.h:110 (wesnoth-debug+0x00000044217d)
    #2 std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::deallocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:517 (wesnoth-debug+0x00000043cee5)
    #3 std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_deallocate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) /usr/include/c++/5/bits/stl_vector.h:178 (wesnoth-debug+0x00000043739c)
    #4 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:438 (wesnoth-debug+0x000000475ba6)
    #5 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x00000047504b)
    #6 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012c8799)
    #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
    #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
    #9 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
    #10 game_config::config_cache::read_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, preproc_define, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, preproc_define> > >&) src/config_cache.cpp:139 (wesnoth-debug+0x0000009e07b8)
    #11 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:230 (wesnoth-debug+0x0000009e1129)
    #12 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009e1d1f)
    #13 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009e0307)
    #14 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e312e)
    #15 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #16 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #17 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #18 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #19 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+0x0000004e20c7)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d1000004e90 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x000001fff400 by thread T4:
    #0 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:441 (wesnoth-debug+0x000000475bb2)
    #1 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x00000047504b)
    #2 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012c8799)
    #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
    #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
    #5 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
    #6 game_config::config_cache::read_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, preproc_define, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, preproc_define> > >&) src/config_cache.cpp:139 (wesnoth-debug+0x0000009e07b8)
    #7 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:230 (wesnoth-debug+0x0000009e1129)
    #8 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009e1d1f)
    #9 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009e0307)
    #10 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e312e)
    #11 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #12 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #13 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #14 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #15 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+0x0000004e20c7)
    #16 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #17 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #20 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #21 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x000001fff400 by main thread:
    [failed to restore the stack]
   Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fff400 (wesnoth-debug+0x000001fff400)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/vector.tcc:441 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x000001fff408 by thread T4:
    #0 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:442 (wesnoth-debug+0x000000475bcd)
    #1 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x00000047504b)
    #2 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012c8799)
    #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
    #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
    #5 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
    #6 game_config::config_cache::read_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, preproc_define, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, preproc_define> > >&) src/config_cache.cpp:139 (wesnoth-debug+0x0000009e07b8)
    #7 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:230 (wesnoth-debug+0x0000009e1129)
    #8 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009e1d1f)
    #9 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009e0307)
    #10 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e312e)
    #11 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #12 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #13 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #14 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #15 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+0x0000004e20c7)
    #16 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #17 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #20 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #21 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x000001fff408 by main thread:
    [failed to restore the stack]
   Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fff400 (wesnoth-debug+0x000001fff408)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/vector.tcc:442 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x7d6000019410 by main thread:
    #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
    #1 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (libstdc++.so.6+0x00000011cc92)
    #2 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012c776b)
    #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012c9c5f)
    #4 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #5 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
    #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
    #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
    #9 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ee8e)
    #10 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055e039)
    #11 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c606)
    #12 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559ed8)
    #13 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
    #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
    #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
    #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d6000019410 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 1024 at 0x7d6000019400 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104 (wesnoth-debug+0x000000446588)
    #2 std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:491 (wesnoth-debug+0x0000004421ba)
    #3 std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170 (wesnoth-debug+0x00000043cf34)
    #4 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:412 (wesnoth-debug+0x000000475a59)
    #5 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x00000047504b)
    #6 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012c8799)
    #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
    #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
    #9 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
    #10 game_config::config_cache::read_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, preproc_define, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, preproc_define> > >&) src/config_cache.cpp:139 (wesnoth-debug+0x0000009e07b8)
    #11 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:230 (wesnoth-debug+0x0000009e1129)
    #12 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009e1d1f)
    #13 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009e0307)
    #14 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e312e)
    #15 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #16 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #17 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #18 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #19 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+0x0000004e20c7)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26ee1) in __interceptor_memcpy
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d1000001cc0 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 void std::_Destroy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/5/bits/stl_construct.h:93 (wesnoth-debug+0x0000004449c5)
    #2 void std::_Destroy_aux<false>::__destroy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/5/bits/stl_construct.h:103 (wesnoth-debug+0x000000440b86)
    #3 void std::_Destroy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/5/bits/stl_construct.h:126 (wesnoth-debug+0x00000043adbb)
    #4 void std::_Destroy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) /usr/include/c++/5/bits/stl_construct.h:151 (wesnoth-debug+0x0000004355a2)
    #5 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector() /usr/include/c++/5/bits/stl_vector.h:424 (wesnoth-debug+0x000000431d04)
    #6 std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::~pair() /usr/include/c++/5/bits/stl_pair.h:96 (wesnoth-debug+0x0000005112b3)
    #7 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*) /usr/include/c++/5/ext/new_allocator.h:124 (wesnoth-debug+0x0000005112ef)
    #8 void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*) /usr/include/c++/5/bits/alloc_traits.h:542 (wesnoth-debug+0x000000510213)
    #9 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*) /usr/include/c++/5/bits/stl_tree.h:553 (wesnoth-debug+0x00000050e59c)
    #10 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*) /usr/include/c++/5/bits/stl_tree.h:561 (wesnoth-debug+0x000000509976)
    #11 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*) /usr/include/c++/5/bits/stl_tree.h:1614 (wesnoth-debug+0x000000508102)
    #12 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::clear() /usr/include/c++/5/bits/stl_tree.h:1075 (wesnoth-debug+0x0000005061cf)
    #13 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::clear() /usr/include/c++/5/bits/stl_map.h:810 (wesnoth-debug+0x00000050349f)
    #14 filesystem::binary_paths_manager::cleanup() src/filesystem_boost.cpp:1021 (wesnoth-debug+0x0000012dee36)
    #15 filesystem::binary_paths_manager::set_paths(config const&) src/filesystem_boost.cpp:1001 (wesnoth-debug+0x0000012deaf8)
    #16 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:330 (wesnoth-debug+0x0000004e38df)
    #17 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #20 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #21 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+0x0000004e20c7)
    #22 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #23 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #24 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #25 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #26 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #27 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d1000001cc0 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d18000046f0 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::deallocate(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*, unsigned long) /usr/include/c++/5/ext/new_allocator.h:110 (wesnoth-debug+0x000000511323)
    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >&, std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:517 (wesnoth-debug+0x000000510252)
    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_M_put_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*) /usr/include/c++/5/bits/stl_tree.h:495 (wesnoth-debug+0x00000050e5e8)
    #4 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*) /usr/include/c++/5/bits/stl_tree.h:562 (wesnoth-debug+0x000000509989)
    #5 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >*) /usr/include/c++/5/bits/stl_tree.h:1614 (wesnoth-debug+0x000000508102)
    #6 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::clear() /usr/include/c++/5/bits/stl_tree.h:1075 (wesnoth-debug+0x0000005061cf)
    #7 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::clear() /usr/include/c++/5/bits/stl_map.h:810 (wesnoth-debug+0x00000050349f)
    #8 filesystem::binary_paths_manager::cleanup() src/filesystem_boost.cpp:1021 (wesnoth-debug+0x0000012dee36)
    #9 filesystem::binary_paths_manager::set_paths(config const&) src/filesystem_boost.cpp:1001 (wesnoth-debug+0x0000012deaf8)
    #10 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:330 (wesnoth-debug+0x0000004e38df)
    #11 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #12 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #13 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #14 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #15 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+0x0000004e20c7)
    #16 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #17 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #20 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #21 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d18000046f0 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x000002000170 by thread T4:
    #0 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::_Rb_tree_impl<std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true>::_M_reset() /usr/include/c++/5/bits/stl_tree.h:606 (wesnoth-debug+0x000000509ff8)
    #1 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::clear() /usr/include/c++/5/bits/stl_tree.h:1076 (wesnoth-debug+0x0000005061db)
    #2 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::clear() /usr/include/c++/5/bits/stl_map.h:810 (wesnoth-debug+0x00000050349f)
    #3 filesystem::binary_paths_manager::cleanup() src/filesystem_boost.cpp:1021 (wesnoth-debug+0x0000012dee36)
    #4 filesystem::binary_paths_manager::set_paths(config const&) src/filesystem_boost.cpp:1001 (wesnoth-debug+0x0000012deaf8)
    #5 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:330 (wesnoth-debug+0x0000004e38df)
    #6 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
    #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
    #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #9 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
    #10 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+0x0000004e20c7)
    #11 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
    #12 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #14 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #15 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #16 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x000002000170 by main thread:
    [failed to restore the stack]
   Location is global 'filesystem::(anonymous namespace)::binary_paths_cache' of size 48 at 0x000002000160 (wesnoth-debug+0x000002000170)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/stl_tree.h:606 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 1 at 0x7d280000e730 by thread T4:
    #0 update_locale src/gettext_boost.cpp:152 (wesnoth-debug+0x0000012ee897)
    #1 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:253 (wesnoth-debug+0x0000012ef4ec)
    #2 t_string::add_textdomain(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:503 (wesnoth-debug+0x0000012ca26a)
    #3 init_textdomains(config const&) src/language.cpp:301 (wesnoth-debug+0x0000013a26e5)
    #4 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
    #5 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #6 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #7 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #8 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #9 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 1 at 0x7d280000e730 by main thread:
    [failed to restore the stack]
   Location is heap block of size 152 at 0x7d280000e6a0 allocated by main thread:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 get_manager src/gettext_boost.cpp:204 (wesnoth-debug+0x0000012ef012)
    #2 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:251 (wesnoth-debug+0x0000012ef463)
    #3 init_locale src/wesnoth.cpp:479 (wesnoth-debug+0x00000042acbd)
    #4 do_gameloop src/wesnoth.cpp:589 (wesnoth-debug+0x00000042b1a2)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race src/gettext_boost.cpp:152 in update_locale
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 4 at 0x000001ffec88 by thread T4:
    #0 lg::logger::dont_log(lg::log_domain const&) const src/log.hpp:124 (wesnoth-debug+0x0000004303ce)
    #1 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a2774)
    #2 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
    #3 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #4 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #5 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #6 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #7 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous write of size 4 at 0x000001ffec88 by main thread:
    [failed to restore the stack]
   Location is global 'lg::warn()::lg' of size 16 at 0x000001ffec80 (wesnoth-debug+0x000001ffec88)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race src/log.hpp:124 in lg::logger::dont_log(lg::log_domain const&) const
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d040000edc0 by thread T4:
    #0 free <null> (libtsan.so.0+0x000000026b82)
    #1 <null> <null> (libc.so.6+0x0000000aaa1d)
    #2 lg::get_timestamp(long const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/log.cpp:176 (wesnoth-debug+0x00000125a123)
    #3 lg::logger::operator()(lg::log_domain const&, bool, bool) const src/log.cpp:228 (wesnoth-debug+0x00000125a842)
    #4 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a279a)
    #5 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
    #6 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #9 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #10 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous write of size 8 at 0x7d040000edc0 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26b82) in free
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7fc72f137560 by thread T4:
    #0 localtime <null> (libtsan.so.0+0x00000002e476)
    #1 lg::get_timestamp(long const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/log.cpp:176 (wesnoth-debug+0x00000125a123)
    #2 lg::logger::operator()(lg::log_domain const&, bool, bool) const src/log.cpp:228 (wesnoth-debug+0x00000125a842)
    #3 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a279a)
    #4 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
    #5 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #6 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #7 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #8 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #9 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous write of size 8 at 0x7fc72f137560 by main thread:
    [failed to restore the stack]
   Location is global '<null>' at 0x000000000000 (libc.so.6+0x0000003a3560)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2e476) in __interceptor_localtime
==================
20160619 16:32:55 ==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x000001ffec80 by thread T4:
    #0 lg::logger::operator()(lg::log_domain const&, bool, bool) const src/log.cpp:232 (wesnoth-debug+0x00000125a8ad)
    #1 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a279a)
    #2 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
    #3 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #4 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #5 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #6 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #7 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous write of size 8 at 0x000001ffec80 by main thread:
    [failed to restore the stack]
   Location is global 'lg::warn()::lg' of size 16 at 0x000001ffec80 (wesnoth-debug+0x000001ffec80)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race src/log.cpp:232 in lg::logger::operator()(lg::log_domain const&, bool, bool) const
==================
warning general: no location found for 'data/add-ons/Era_of_Chaos/translations', skipping textdomain
20160619 16:32:55 warning general: no location found for 'data/add-ons/Orb_Test/translations', skipping textdomain
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d1400014fd0 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::deallocate(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*, unsigned long) /usr/include/c++/5/ext/new_allocator.h:110 (wesnoth-debug+0x0000007035b7)
    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >&, std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:517 (wesnoth-debug+0x000000702add)
    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*) /usr/include/c++/5/bits/stl_tree.h:495 (wesnoth-debug+0x000000701148)
    #4 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*) /usr/include/c++/5/bits/stl_tree.h:562 (wesnoth-debug+0x0000006fdd07)
    #5 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*) /usr/include/c++/5/bits/stl_tree.h:1614 (wesnoth-debug+0x0000006fad9c)
    #6 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*) /usr/include/c++/5/bits/stl_tree.h:1612 (wesnoth-debug+0x0000006fad79)
    #7 boost::locale::gnu_gettext::mo_message<char>::~mo_message() <null> (libboost_locale.so.1.60.0+0x0000000647e5)
    #8 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #9 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #10 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #11 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #12 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #13 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #14 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #15 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #16 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #17 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #18 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #19 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #20 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #21 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #22 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #23 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #24 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #25 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #26 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #27 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #28 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #29 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #30 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #31 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d1400014fd0 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d3400008610 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 std::locale::_Impl::~_Impl() <null> (libstdc++.so.6+0x0000000a0373)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d3400008610 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d4c00008680 by thread T4:
    #0 operator delete[](void*) <null> (libtsan.so.0+0x000000065cc9)
    #1 std::locale::_Impl::~_Impl() <null> (libstdc++.so.6+0x0000000a038c)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d4c00008680 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65cc9) in operator delete[](void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d0c00032768 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 std::locale::operator=(std::locale const&) <null> (libstdc++.so.6+0x0000000a04ea)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x7d0c00032768 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x000002000cb0 by thread T4:
    #0 void std::swap<t_string_base const*>(t_string_base const*&, t_string_base const*&) /usr/include/c++/5/bits/move.h:187 (wesnoth-debug+0x0000006b8f70)
    #1 boost::shared_ptr<t_string_base const>::swap(boost::shared_ptr<t_string_base const>&) /usr/include/boost/smart_ptr/shared_ptr.hpp:726 (wesnoth-debug+0x0000006b8b2a)
    #2 boost::shared_ptr<t_string_base const>::operator=(boost::shared_ptr<t_string_base const> const&) /usr/include/boost/smart_ptr/shared_ptr.hpp:526 (wesnoth-debug+0x0000012ca6fc)
    #3 t_string::operator=(t_string const&) src/tstring.cpp:487 (wesnoth-debug+0x0000012ca119)
    #4 font::load_font_config() src/font.cpp:1083 (wesnoth-debug+0x000001357956)
    #5 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
    #6 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #7 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #8 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #9 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 8 at 0x000002000cb0 by main thread:
    [failed to restore the stack]
   Location is global 'font::(anonymous namespace)::family_order_sans' of size 16 at 0x000002000cb0 (wesnoth-debug+0x000002000cb0)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/move.h:187 in void std::swap<t_string_base const*>(t_string_base const*&, t_string_base const*&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 8 at 0x7d1400017ee0 by thread T4:
    #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
    #1 void boost::checked_delete<t_string_base>(t_string_base*) /usr/include/boost/core/checked_delete.hpp:34 (wesnoth-debug+0x0000006b935a)
    #2 boost::detail::sp_counted_impl_p<t_string_base>::dispose() /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:78 (wesnoth-debug+0x0000006b94e7)
    #3 boost::detail::sp_counted_base::release() /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:146 (wesnoth-debug+0x00000042f7aa)
    #4 boost::detail::shared_count::~shared_count() /usr/include/boost/smart_ptr/detail/shared_count.hpp:473 (wesnoth-debug+0x00000042f8de)
    #5 boost::shared_ptr<t_string_base const>::~shared_ptr() /usr/include/boost/smart_ptr/shared_ptr.hpp:336 (wesnoth-debug+0x0000006b8e17)
    #6 boost::shared_ptr<t_string_base const>::operator=(boost::shared_ptr<t_string_base const> const&) /usr/include/boost/smart_ptr/shared_ptr.hpp:526 (wesnoth-debug+0x0000012ca708)
    #7 t_string::operator=(t_string const&) src/tstring.cpp:487 (wesnoth-debug+0x0000012ca119)
    #8 font::load_font_config() src/font.cpp:1083 (wesnoth-debug+0x000001357956)
    #9 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
    #10 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #11 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #12 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #13 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Previous read of size 1 at 0x7d1400017ee1 by main thread:
    [failed to restore the stack]
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x7d0c0005c738 by main thread:
    #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:107 (wesnoth-debug+0x0000012f0571)
    #1 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012f0387)
    #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012f0013)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
    #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
    #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
    #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ee8e)
    #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055e039)
    #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c606)
    #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559ed8)
    #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
    #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
    #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
    #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d0c0005c738 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 40 at 0x7d0c0005c730 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 std::locale::locale<boost::locale::util::simple_info>(std::locale const&, boost::locale::util::simple_info*) <null> (libboost_locale.so.1.60.0+0x00000007b0fc)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:107 in bool std::has_facet<boost::locale::message_format<char> >(std::locale const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x7d0c0005c740 by main thread:
    #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:108 (wesnoth-debug+0x0000012f0598)
    #1 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012f0387)
    #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012f0013)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
    #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
    #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
    #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ee8e)
    #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055e039)
    #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c606)
    #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559ed8)
    #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
    #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
    #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
    #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d0c0005c740 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 40 at 0x7d0c0005c730 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 std::locale::locale<boost::locale::util::simple_info>(std::locale const&, boost::locale::util::simple_info*) <null> (libboost_locale.so.1.60.0+0x00000007b0fc)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:108 in bool std::has_facet<boost::locale::message_format<char> >(std::locale const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x7d4c0001da00 by main thread:
    #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:110 (wesnoth-debug+0x0000012f05be)
    #1 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012f0387)
    #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012f0013)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
    #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
    #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
    #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ee8e)
    #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055e039)
    #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c606)
    #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559ed8)
    #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
    #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
    #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
    #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d4c0001da00 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 448 at 0x7d4c0001d880 allocated by thread T4:
    #0 operator new[](unsigned long) <null> (libtsan.so.0+0x000000065a53)
    #1 std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) <null> (libstdc++.so.6+0x0000000a0934)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:110 in bool std::has_facet<boost::locale::message_format<char> >(std::locale const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x7d3400017760 by main thread:
    #0 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:374 (wesnoth-debug+0x0000012f03a5)
    #1 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012f0013)
    #2 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
    #3 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #4 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #5 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #6 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #7 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
    #8 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
    #9 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
    #10 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ee8e)
    #11 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055e039)
    #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c606)
    #13 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559ed8)
    #14 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
    #15 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
    #16 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
    #17 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #18 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #19 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #20 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #21 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #22 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d3400017760 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 208 at 0x7d3400017760 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 boost::locale::message_format<char>* boost::locale::gnu_gettext::create_messages_facet<char>(boost::locale::gnu_gettext::messages_info const&) <null> (libboost_locale.so.1.60.0+0x0000000622b2)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race /usr/include/boost/locale/message.hpp:374 in boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 8 at 0x7d14000d8610 by main thread:
    #0 memcmp <null> (libtsan.so.0+0x00000003f327)
    #1 boost::locale::gnu_gettext::mo_message<char>::domain(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const <null> (libboost_locale.so.1.60.0+0x000000062d1b)
    #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012f0013)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
    #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
    #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
    #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ee8e)
    #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055e039)
    #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c606)
    #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559ed8)
    #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
    #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
    #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
    #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d14000d8610 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 72 at 0x7d14000d85e0 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 <null> <null> (libboost_locale.so.1.60.0+0x0000000621a1)
    #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
    #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
    #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
    #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
    #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
    #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
    #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x00000124a901)
    #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001246801)
    #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x000001241e82)
    #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x00000123c53b)
    #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000123728b)
    #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x0000012328f1)
    #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x00000122c672)
    #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x0000012277a4)
    #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:378 (wesnoth-debug+0x0000012240cf)
    #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
    #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:331 (wesnoth-debug+0x00000042fc5f)
    #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
    #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
    #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
    #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f327) in __interceptor_memcmp
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 1 at 0x7d1400014fe4 by main thread:
    #0 t_string_base::str[abi:cxx11]() const src/tstring.cpp:435 (wesnoth-debug+0x0000012c9b8b)
    #1 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #2 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #3 font::ttext::recalculate(bool) const src/text.cpp:617 (wesnoth-debug+0x0000014220ac)
    #4 font::ttext::rerender(bool) const src/text.cpp:750 (wesnoth-debug+0x000001422bc0)
    #5 font::ttext::render() const src/text.cpp:168 (wesnoth-debug+0x0000014200f9)
    #6 draw src/gui/core/canvas.cpp:1404 (wesnoth-debug+0x000000b35ce4)
    #7 gui2::tcanvas::draw(bool) src/gui/core/canvas.cpp:1491 (wesnoth-debug+0x000000b369d7)
    #8 gui2::tcanvas::blit(surface&, SDL_Rect) src/gui/core/canvas.cpp:1499 (wesnoth-debug+0x000000b36b49)
    #9 gui2::tcontrol::impl_draw_background(surface&, int, int) src/gui/widgets/control.cpp:411 (wesnoth-debug+0x000000584dbb)
    #10 gui2::twidget::draw_background(surface&, int, int) src/gui/widgets/widget.cpp:352 (wesnoth-debug+0x00000060c641)
    #11 gui2::twindow::draw() src/gui/widgets/window.cpp:887 (wesnoth-debug+0x000000613738)
    #12 void std::_Mem_fn_base<void (gui2::twindow::*)(), true>::operator()<, void>(gui2::twindow*) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x000000628e70)
    #13 void std::_Bind<std::_Mem_fn<void (gui2::twindow::*)()> (gui2::twindow*)>::__call<void, gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&, 0ul>(std::tuple<gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&>&&, std::_Index_tuple<0ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000062732d)
    #14 void std::_Bind<std::_Mem_fn<void (gui2::twindow::*)()> (gui2::twindow*)>::operator()<gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&, void>(gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000062378c)
    #15 std::_Function_handler<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&), std::_Bind<std::_Mem_fn<void (gui2::twindow::*)()> (gui2::twindow*)> >::_M_invoke(std::_Any_data const&, gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000061eed2)
    #16 std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>::operator()(gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&) const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000b3b5d0)
    #17 gui2::event::ttrigger::operator()(std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>, gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&) src/gui/core/event/dispatcher.cpp:140 (wesnoth-debug+0x000000b3a9f5)
    #18 bool gui2::event::implementation::fire_event<std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>, gui2::event::ttrigger>(gui2::event::tevent, std::vector<std::pair<gui2::twidget*, gui2::event::tevent>, std::allocator<std::pair<gui2::twidget*, gui2::event::tevent> > >&, gui2::twidget*, gui2::twidget*, gui2::event::ttrigger) src/gui/core/event/dispatcher_private.hpp:449 (wesnoth-debug+0x000000b3e225)
    #19 bool gui2::event::fire_event<std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>, gui2::event::ttrigger>(gui2::event::tevent, gui2::twidget*, gui2::twidget*, gui2::event::ttrigger) src/gui/core/event/dispatcher_private.hpp:529 (wesnoth-debug+0x000000b3c0b0)
    #20 gui2::event::tdispatcher::fire(gui2::event::tevent, gui2::twidget&) src/gui/core/event/dispatcher.cpp:174 (wesnoth-debug+0x000000b39dcb)
    #21 gui2::event::thandler::draw(bool) src/gui/core/event/handler.cpp:530 (wesnoth-debug+0x000000513c64)
    #22 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:357 (wesnoth-debug+0x0000005131e9)
    #23 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #24 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #25 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #26 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #27 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #28 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d1400014fe0 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 72 at 0x7d1400014fa0 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 t_string::t_string(t_string_base const&) src/tstring.cpp:469 (wesnoth-debug+0x0000012c9f12)
    #2 parse_variable src/serialization/parser.cpp:330 (wesnoth-debug+0x000001285660)
    #3 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
    #4 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
    #5 font::load_font_config() src/font.cpp:1061 (wesnoth-debug+0x0000013574a2)
    #6 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
    #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #9 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #10 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race src/tstring.cpp:435 in t_string_base::str[abi:cxx11]() const
==================
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Read of size 1 at 0x7d1400014fb0 by main thread:
    #0 t_string_base::walker::update() src/tstring.cpp:83 (wesnoth-debug+0x0000012c7938)
    #1 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012c776b)
    #2 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012c9c5f)
    #3 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:93 (wesnoth-debug+0x00000051b30e)
    #4 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:169 (wesnoth-debug+0x00000051b362)
    #5 font::ttext::recalculate(bool) const src/text.cpp:617 (wesnoth-debug+0x0000014220ac)
    #6 font::ttext::rerender(bool) const src/text.cpp:750 (wesnoth-debug+0x000001422bc0)
    #7 font::ttext::render() const src/text.cpp:168 (wesnoth-debug+0x0000014200f9)
    #8 draw src/gui/core/canvas.cpp:1404 (wesnoth-debug+0x000000b35ce4)
    #9 gui2::tcanvas::draw(bool) src/gui/core/canvas.cpp:1491 (wesnoth-debug+0x000000b369d7)
    #10 gui2::tcanvas::blit(surface&, SDL_Rect) src/gui/core/canvas.cpp:1499 (wesnoth-debug+0x000000b36b49)
    #11 gui2::tcontrol::impl_draw_background(surface&, int, int) src/gui/widgets/control.cpp:411 (wesnoth-debug+0x000000584dbb)
    #12 gui2::twidget::draw_background(surface&, int, int) src/gui/widgets/widget.cpp:352 (wesnoth-debug+0x00000060c641)
    #13 gui2::twindow::draw() src/gui/widgets/window.cpp:887 (wesnoth-debug+0x000000613738)
    #14 void std::_Mem_fn_base<void (gui2::twindow::*)(), true>::operator()<, void>(gui2::twindow*) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x000000628e70)
    #15 void std::_Bind<std::_Mem_fn<void (gui2::twindow::*)()> (gui2::twindow*)>::__call<void, gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&, 0ul>(std::tuple<gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&>&&, std::_Index_tuple<0ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000062732d)
    #16 void std::_Bind<std::_Mem_fn<void (gui2::twindow::*)()> (gui2::twindow*)>::operator()<gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&, void>(gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000062378c)
    #17 std::_Function_handler<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&), std::_Bind<std::_Mem_fn<void (gui2::twindow::*)()> (gui2::twindow*)> >::_M_invoke(std::_Any_data const&, gui2::event::tdispatcher&, gui2::event::tevent&&, bool&, bool&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000061eed2)
    #18 std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>::operator()(gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&) const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000b3b5d0)
    #19 gui2::event::ttrigger::operator()(std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>, gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&) src/gui/core/event/dispatcher.cpp:140 (wesnoth-debug+0x000000b3a9f5)
    #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>, gui2::event::ttrigger>(gui2::event::tevent, std::vector<std::pair<gui2::twidget*, gui2::event::tevent>, std::allocator<std::pair<gui2::twidget*, gui2::event::tevent> > >&, gui2::twidget*, gui2::twidget*, gui2::event::ttrigger) src/gui/core/event/dispatcher_private.hpp:449 (wesnoth-debug+0x000000b3e225)
    #21 bool gui2::event::fire_event<std::function<void (gui2::event::tdispatcher&, gui2::event::tevent, bool&, bool&)>, gui2::event::ttrigger>(gui2::event::tevent, gui2::twidget*, gui2::twidget*, gui2::event::ttrigger) src/gui/core/event/dispatcher_private.hpp:529 (wesnoth-debug+0x000000b3c0b0)
    #22 gui2::event::tdispatcher::fire(gui2::event::tevent, gui2::twidget&) src/gui/core/event/dispatcher.cpp:174 (wesnoth-debug+0x000000b39dcb)
    #23 gui2::event::thandler::draw(bool) src/gui/core/event/handler.cpp:530 (wesnoth-debug+0x000000513c64)
    #24 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:357 (wesnoth-debug+0x0000005131e9)
    #25 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
    #26 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
    #27 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #28 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #29 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #30 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous write of size 8 at 0x7d1400014fb0 by thread T4:
    [failed to restore the stack]
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is heap block of size 72 at 0x7d1400014fa0 allocated by thread T4:
    #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
    #1 t_string::t_string(t_string_base const&) src/tstring.cpp:469 (wesnoth-debug+0x0000012c9f12)
    #2 parse_variable src/serialization/parser.cpp:330 (wesnoth-debug+0x000001285660)
    #3 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
    #4 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
    #5 font::load_font_config() src/font.cpp:1061 (wesnoth-debug+0x0000013574a2)
    #6 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
    #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
    #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
    #9 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
    #10 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
   Thread T4 (tid=7364, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
    #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
    #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
    #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
    #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
 SUMMARY: ThreadSanitizer: data race src/tstring.cpp:83 in t_string_base::walker::update()
==================
20160619 16:32:55 warning config: add-on 'Orb_Test' has no _info.cfg; cannot read version info
==================
WARNING: ThreadSanitizer: data race (pid=7344)
  Write of size 4 at 0x000001ff6934 by main thread:
    #0 ~tdraw_interval_setter src/gui/widgets/window.cpp:626 (wesnoth-debug+0x0000006125e6)
    #1 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:639 (wesnoth-debug+0x000000612ba9)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Previous read of size 4 at 0x000001ff6934 by thread T1:
    #0 draw_timer src/gui/widgets/window.cpp:151 (wesnoth-debug+0x0000006104be)
    #1 <null> <null> (libSDL2-2.0.so.0+0x00000007b611)
   As if synchronized via sleep:
    #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
    #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
    #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
    #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
    #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
   Location is global 'gui2::(anonymous namespace)::draw_interval' of size 4 at 0x000001ff6934 (wesnoth-debug+0x000001ff6934)
   Thread T1 'SDLTimer' (tid=7346, running) created by main thread at:
    #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
    #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
    #2 __libc_start_main <null> (libc.so.6+0x0000000205ef)
 SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:626 in ~tdraw_interval_setter
==================
Checking lua scripts... ok

Comments