shadowm

Untitled

Jun 19th, 2016
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 206.47 KB | None | 0 0
  1. 16:32:26 shadowm@nanacore ~/src/wesnoth % ./wesnoth-debug
  2. Battle for Wesnoth v1.13.4+dev (c9f28e2-Clean)
  3. Started on Sun Jun 19 16:32:30 2016
  4.  
  5. Automatically found a possible data directory at /home/shadowm/src/wesnoth
  6.  
  7. Data directory: /home/shadowm/src/wesnoth
  8. User configuration directory: /home/shadowm/.wesnoth-1.13
  9. User data directory: /home/shadowm/.wesnoth-1.13
  10. Cache directory: /home/shadowm/.wesnoth-1.13/cache
  11.  
  12. ==================
  13. WARNING: ThreadSanitizer: data race (pid=7344)
  14. Write of size 8 at 0x7d280000e758 by main thread:
  15. #0 recvmsg <null> (libtsan.so.0+0x00000003f9cc)
  16. #1 pa_iochannel_read_with_ancil_data <null> (libpulsecommon-8.0.so+0x0000000316db)
  17. #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
  18. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
  19. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  20.  
  21. Previous write of size 8 at 0x7d280000e758 by thread T2:
  22. #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
  23. #1 pa_srbchannel_read <null> (libpulsecommon-8.0.so+0x0000000447ae)
  24.  
  25. Location is heap block of size 152 at 0x7d280000e740 allocated by main thread:
  26. #0 malloc <null> (libtsan.so.0+0x0000000268cc)
  27. #1 pa_xmalloc <null> (libpulse.so.0+0x000000039ad6)
  28. #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
  29. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
  30. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  31.  
  32. Thread T2 'PulseHotplug' (tid=7362, running) created by main thread at:
  33. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  34. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
  35. #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
  36. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
  37. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  38.  
  39. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg
  40. ==================
  41. ==================
  42. WARNING: ThreadSanitizer: data race (pid=7344)
  43. Write of size 1 at 0x7d280000e766 by main thread:
  44. #0 recvmsg <null> (libtsan.so.0+0x00000003f9cc)
  45. #1 pa_iochannel_read_with_ancil_data <null> (libpulsecommon-8.0.so+0x0000000316db)
  46. #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
  47. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
  48. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  49.  
  50. Previous write of size 1 at 0x7d280000e766 by thread T2:
  51. #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
  52. #1 pa_packet_new_data <null> (libpulsecommon-8.0.so+0x00000003d54d)
  53.  
  54. Location is heap block of size 152 at 0x7d280000e740 allocated by main thread:
  55. #0 malloc <null> (libtsan.so.0+0x0000000268cc)
  56. #1 pa_xmalloc <null> (libpulse.so.0+0x000000039ad6)
  57. #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
  58. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
  59. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  60.  
  61. Thread T2 'PulseHotplug' (tid=7362, running) created by main thread at:
  62. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  63. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
  64. #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef19c)
  65. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042b17f)
  66. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  67.  
  68. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg
  69. ==================
  70. Setting mode to 1178x800
  71. 20160619 16:32:48 warning gui/event: Unhandled event 4352.
  72. 20160619 16:32:48 warning gui/event: Unhandled event 4352.
  73. ==================
  74. WARNING: ThreadSanitizer: data race (pid=7344)
  75. Write of size 8 at 0x7d1000004e90 by thread T4:
  76. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  77. #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)
  78. #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)
  79. #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)
  80. #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)
  81. #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)
  82. #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)
  83. #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
  84. #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
  85. #9 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
  86. #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)
  87. #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)
  88. #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)
  89. #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)
  90. #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)
  91. #15 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  92. #16 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  93. #17 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  94. #18 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  95. #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)
  96. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  97. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  98. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  99. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  100. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  101. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  102.  
  103. Previous read of size 8 at 0x7d1000004e90 by main thread:
  104. [failed to restore the stack]
  105.  
  106. Thread T4 (tid=7364, running) created by main thread at:
  107. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  108. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  109. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  110. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  111. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  112. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  113. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  114. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  115.  
  116. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  117. ==================
  118. ==================
  119. WARNING: ThreadSanitizer: data race (pid=7344)
  120. Write of size 8 at 0x000001fff400 by thread T4:
  121. #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)
  122. #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)
  123. #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)
  124. #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
  125. #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
  126. #5 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
  127. #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)
  128. #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)
  129. #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)
  130. #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)
  131. #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)
  132. #11 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  133. #12 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  134. #13 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  135. #14 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  136. #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)
  137. #16 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  138. #17 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  139. #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  140. #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  141. #20 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  142. #21 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  143.  
  144. Previous read of size 8 at 0x000001fff400 by main thread:
  145. [failed to restore the stack]
  146.  
  147. Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fff400 (wesnoth-debug+0x000001fff400)
  148.  
  149. Thread T4 (tid=7364, running) created by main thread at:
  150. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  151. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  152. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  153. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  154. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  155. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  156. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  157. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  158.  
  159. 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&)
  160. ==================
  161. ==================
  162. WARNING: ThreadSanitizer: data race (pid=7344)
  163. Write of size 8 at 0x000001fff408 by thread T4:
  164. #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)
  165. #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)
  166. #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)
  167. #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
  168. #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
  169. #5 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
  170. #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)
  171. #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)
  172. #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)
  173. #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)
  174. #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)
  175. #11 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  176. #12 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  177. #13 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  178. #14 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  179. #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)
  180. #16 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  181. #17 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  182. #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  183. #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  184. #20 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  185. #21 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  186.  
  187. Previous read of size 8 at 0x000001fff408 by main thread:
  188. [failed to restore the stack]
  189.  
  190. Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fff400 (wesnoth-debug+0x000001fff408)
  191.  
  192. Thread T4 (tid=7364, running) created by main thread at:
  193. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  194. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  195. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  196. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  197. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  198. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  199. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  200. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  201.  
  202. 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&)
  203. ==================
  204. ==================
  205. WARNING: ThreadSanitizer: data race (pid=7344)
  206. Read of size 8 at 0x7d6000019410 by main thread:
  207. #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
  208. #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)
  209. #2 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012c776b)
  210. #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012c9c5f)
  211. #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)
  212. #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)
  213. #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
  214. #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
  215. #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
  216. #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)
  217. #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)
  218. #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)
  219. #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)
  220. #13 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
  221. #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
  222. #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
  223. #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  224. #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  225. #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  226. #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  227. #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  228. #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  229.  
  230. Previous write of size 8 at 0x7d6000019410 by thread T4:
  231. [failed to restore the stack]
  232.  
  233. As if synchronized via sleep:
  234. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  235. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  236. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  237. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  238. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  239. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  240.  
  241. Location is heap block of size 1024 at 0x7d6000019400 allocated by thread T4:
  242. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  243. #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)
  244. #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)
  245. #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)
  246. #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)
  247. #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)
  248. #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)
  249. #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001285470)
  250. #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
  251. #9 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
  252. #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)
  253. #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)
  254. #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)
  255. #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)
  256. #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)
  257. #15 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  258. #16 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  259. #17 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  260. #18 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  261. #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)
  262. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  263. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  264. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  265. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  266. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  267. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  268.  
  269. Thread T4 (tid=7364, running) created by main thread at:
  270. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  271. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  272. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  273. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  274. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  275. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  276. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  277. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  278.  
  279. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26ee1) in __interceptor_memcpy
  280. ==================
  281. ==================
  282. WARNING: ThreadSanitizer: data race (pid=7344)
  283. Write of size 8 at 0x7d1000001cc0 by thread T4:
  284. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  285. #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)
  286. #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)
  287. #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)
  288. #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)
  289. #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)
  290. #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)
  291. #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)
  292. #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)
  293. #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)
  294. #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)
  295. #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)
  296. #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)
  297. #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)
  298. #14 filesystem::binary_paths_manager::cleanup() src/filesystem_boost.cpp:1021 (wesnoth-debug+0x0000012dee36)
  299. #15 filesystem::binary_paths_manager::set_paths(config const&) src/filesystem_boost.cpp:1001 (wesnoth-debug+0x0000012deaf8)
  300. #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)
  301. #17 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  302. #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  303. #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  304. #20 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  305. #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)
  306. #22 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  307. #23 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  308. #24 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  309. #25 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  310. #26 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  311. #27 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  312.  
  313. Previous read of size 8 at 0x7d1000001cc0 by main thread:
  314. [failed to restore the stack]
  315.  
  316. Thread T4 (tid=7364, running) created by main thread at:
  317. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  318. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  319. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  320. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  321. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  322. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  323. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  324. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  325.  
  326. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  327. ==================
  328. ==================
  329. WARNING: ThreadSanitizer: data race (pid=7344)
  330. Write of size 8 at 0x7d18000046f0 by thread T4:
  331. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  332. #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)
  333. #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)
  334. #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)
  335. #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)
  336. #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)
  337. #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)
  338. #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)
  339. #8 filesystem::binary_paths_manager::cleanup() src/filesystem_boost.cpp:1021 (wesnoth-debug+0x0000012dee36)
  340. #9 filesystem::binary_paths_manager::set_paths(config const&) src/filesystem_boost.cpp:1001 (wesnoth-debug+0x0000012deaf8)
  341. #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)
  342. #11 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  343. #12 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  344. #13 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  345. #14 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  346. #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)
  347. #16 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  348. #17 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  349. #18 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  350. #19 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  351. #20 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  352. #21 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  353.  
  354. Previous read of size 8 at 0x7d18000046f0 by main thread:
  355. [failed to restore the stack]
  356.  
  357. Thread T4 (tid=7364, running) created by main thread at:
  358. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  359. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  360. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  361. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  362. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  363. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  364. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  365. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  366.  
  367. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  368. ==================
  369. ==================
  370. WARNING: ThreadSanitizer: data race (pid=7344)
  371. Write of size 8 at 0x000002000170 by thread T4:
  372. #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)
  373. #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)
  374. #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)
  375. #3 filesystem::binary_paths_manager::cleanup() src/filesystem_boost.cpp:1021 (wesnoth-debug+0x0000012dee36)
  376. #4 filesystem::binary_paths_manager::set_paths(config const&) src/filesystem_boost.cpp:1001 (wesnoth-debug+0x0000012deaf8)
  377. #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)
  378. #6 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1e8f)
  379. #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6e4b)
  380. #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  381. #9 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550c0c)
  382. #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)
  383. #11 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e1a6d)
  384. #12 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  385. #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  386. #14 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  387. #15 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  388. #16 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  389.  
  390. Previous read of size 8 at 0x000002000170 by main thread:
  391. [failed to restore the stack]
  392.  
  393. Location is global 'filesystem::(anonymous namespace)::binary_paths_cache' of size 48 at 0x000002000160 (wesnoth-debug+0x000002000170)
  394.  
  395. Thread T4 (tid=7364, running) created by main thread at:
  396. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  397. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  398. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  399. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  400. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  401. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  402. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  403. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  404.  
  405. 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
  406. ==================
  407. ==================
  408. WARNING: ThreadSanitizer: data race (pid=7344)
  409. Write of size 1 at 0x7d280000e730 by thread T4:
  410. #0 update_locale src/gettext_boost.cpp:152 (wesnoth-debug+0x0000012ee897)
  411. #1 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:253 (wesnoth-debug+0x0000012ef4ec)
  412. #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)
  413. #3 init_textdomains(config const&) src/language.cpp:301 (wesnoth-debug+0x0000013a26e5)
  414. #4 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
  415. #5 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  416. #6 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  417. #7 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  418. #8 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  419. #9 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  420.  
  421. Previous read of size 1 at 0x7d280000e730 by main thread:
  422. [failed to restore the stack]
  423.  
  424. Location is heap block of size 152 at 0x7d280000e6a0 allocated by main thread:
  425. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  426. #1 get_manager src/gettext_boost.cpp:204 (wesnoth-debug+0x0000012ef012)
  427. #2 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:251 (wesnoth-debug+0x0000012ef463)
  428. #3 init_locale src/wesnoth.cpp:479 (wesnoth-debug+0x00000042acbd)
  429. #4 do_gameloop src/wesnoth.cpp:589 (wesnoth-debug+0x00000042b1a2)
  430. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  431.  
  432. Thread T4 (tid=7364, running) created by main thread at:
  433. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  434. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  435. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  436. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  437. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  438. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  439. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  440. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  441.  
  442. SUMMARY: ThreadSanitizer: data race src/gettext_boost.cpp:152 in update_locale
  443. ==================
  444. ==================
  445. WARNING: ThreadSanitizer: data race (pid=7344)
  446. Read of size 4 at 0x000001ffec88 by thread T4:
  447. #0 lg::logger::dont_log(lg::log_domain const&) const src/log.hpp:124 (wesnoth-debug+0x0000004303ce)
  448. #1 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a2774)
  449. #2 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
  450. #3 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  451. #4 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  452. #5 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  453. #6 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  454. #7 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  455.  
  456. Previous write of size 4 at 0x000001ffec88 by main thread:
  457. [failed to restore the stack]
  458.  
  459. Location is global 'lg::warn()::lg' of size 16 at 0x000001ffec80 (wesnoth-debug+0x000001ffec88)
  460.  
  461. Thread T4 (tid=7364, running) created by main thread at:
  462. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  463. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  464. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  465. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  466. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  467. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  468. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  469. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  470.  
  471. SUMMARY: ThreadSanitizer: data race src/log.hpp:124 in lg::logger::dont_log(lg::log_domain const&) const
  472. ==================
  473. ==================
  474. WARNING: ThreadSanitizer: data race (pid=7344)
  475. Write of size 8 at 0x7d040000edc0 by thread T4:
  476. #0 free <null> (libtsan.so.0+0x000000026b82)
  477. #1 <null> <null> (libc.so.6+0x0000000aaa1d)
  478. #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)
  479. #3 lg::logger::operator()(lg::log_domain const&, bool, bool) const src/log.cpp:228 (wesnoth-debug+0x00000125a842)
  480. #4 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a279a)
  481. #5 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
  482. #6 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  483. #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  484. #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  485. #9 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  486. #10 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  487.  
  488. Previous write of size 8 at 0x7d040000edc0 by main thread:
  489. [failed to restore the stack]
  490.  
  491. Thread T4 (tid=7364, running) created by main thread at:
  492. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  493. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  494. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  495. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  496. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  497. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  498. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  499. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  500.  
  501. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26b82) in free
  502. ==================
  503. ==================
  504. WARNING: ThreadSanitizer: data race (pid=7344)
  505. Write of size 8 at 0x7fc72f137560 by thread T4:
  506. #0 localtime <null> (libtsan.so.0+0x00000002e476)
  507. #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)
  508. #2 lg::logger::operator()(lg::log_domain const&, bool, bool) const src/log.cpp:228 (wesnoth-debug+0x00000125a842)
  509. #3 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a279a)
  510. #4 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
  511. #5 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  512. #6 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  513. #7 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  514. #8 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  515. #9 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  516.  
  517. Previous write of size 8 at 0x7fc72f137560 by main thread:
  518. [failed to restore the stack]
  519.  
  520. Location is global '<null>' at 0x000000000000 (libc.so.6+0x0000003a3560)
  521.  
  522. Thread T4 (tid=7364, running) created by main thread at:
  523. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  524. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  525. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  526. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  527. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  528. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  529. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  530. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  531.  
  532. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2e476) in __interceptor_localtime
  533. ==================
  534. 20160619 16:32:55 ==================
  535. WARNING: ThreadSanitizer: data race (pid=7344)
  536. Read of size 8 at 0x000001ffec80 by thread T4:
  537. #0 lg::logger::operator()(lg::log_domain const&, bool, bool) const src/log.cpp:232 (wesnoth-debug+0x00000125a8ad)
  538. #1 init_textdomains(config const&) src/language.cpp:308 (wesnoth-debug+0x0000013a279a)
  539. #2 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:99 (wesnoth-debug+0x0000004e1b14)
  540. #3 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  541. #4 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  542. #5 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  543. #6 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  544. #7 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  545.  
  546. Previous write of size 8 at 0x000001ffec80 by main thread:
  547. [failed to restore the stack]
  548.  
  549. Location is global 'lg::warn()::lg' of size 16 at 0x000001ffec80 (wesnoth-debug+0x000001ffec80)
  550.  
  551. Thread T4 (tid=7364, running) created by main thread at:
  552. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  553. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  554. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  555. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  556. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  557. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  558. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  559. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  560.  
  561. SUMMARY: ThreadSanitizer: data race src/log.cpp:232 in lg::logger::operator()(lg::log_domain const&, bool, bool) const
  562. ==================
  563. warning general: no location found for 'data/add-ons/Era_of_Chaos/translations', skipping textdomain
  564. 20160619 16:32:55 warning general: no location found for 'data/add-ons/Orb_Test/translations', skipping textdomain
  565. ==================
  566. WARNING: ThreadSanitizer: data race (pid=7344)
  567. Write of size 8 at 0x7d1400014fd0 by thread T4:
  568. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  569. #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)
  570. #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)
  571. #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)
  572. #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)
  573. #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)
  574. #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)
  575. #7 boost::locale::gnu_gettext::mo_message<char>::~mo_message() <null> (libboost_locale.so.1.60.0+0x0000000647e5)
  576. #8 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  577. #9 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  578. #10 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  579. #11 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  580. #12 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  581. #13 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  582. #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)
  583. #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)
  584. #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)
  585. #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)
  586. #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)
  587. #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)
  588. #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)
  589. #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)
  590. #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)
  591. #23 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  592. #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)
  593. #25 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  594. #26 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  595. #27 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  596. #28 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  597. #29 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  598. #30 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  599. #31 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  600.  
  601. Previous read of size 8 at 0x7d1400014fd0 by main thread:
  602. [failed to restore the stack]
  603.  
  604. Thread T4 (tid=7364, running) created by main thread at:
  605. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  606. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  607. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  608. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  609. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  610. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  611. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  612. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  613.  
  614. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  615. ==================
  616. ==================
  617. WARNING: ThreadSanitizer: data race (pid=7344)
  618. Write of size 8 at 0x7d3400008610 by thread T4:
  619. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  620. #1 std::locale::_Impl::~_Impl() <null> (libstdc++.so.6+0x0000000a0373)
  621. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  622. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  623. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  624. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  625. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  626. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  627. #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)
  628. #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)
  629. #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)
  630. #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)
  631. #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)
  632. #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)
  633. #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)
  634. #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)
  635. #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)
  636. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  637. #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)
  638. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  639. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  640. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  641. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  642. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  643. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  644. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  645.  
  646. Previous read of size 8 at 0x7d3400008610 by main thread:
  647. [failed to restore the stack]
  648.  
  649. Thread T4 (tid=7364, running) created by main thread at:
  650. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  651. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  652. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  653. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  654. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  655. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  656. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  657. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  658.  
  659. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  660. ==================
  661. ==================
  662. WARNING: ThreadSanitizer: data race (pid=7344)
  663. Write of size 8 at 0x7d4c00008680 by thread T4:
  664. #0 operator delete[](void*) <null> (libtsan.so.0+0x000000065cc9)
  665. #1 std::locale::_Impl::~_Impl() <null> (libstdc++.so.6+0x0000000a038c)
  666. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  667. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  668. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  669. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  670. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  671. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  672. #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)
  673. #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)
  674. #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)
  675. #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)
  676. #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)
  677. #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)
  678. #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)
  679. #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)
  680. #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)
  681. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  682. #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)
  683. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  684. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  685. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  686. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  687. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  688. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  689. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  690.  
  691. Previous read of size 8 at 0x7d4c00008680 by main thread:
  692. [failed to restore the stack]
  693.  
  694. Thread T4 (tid=7364, running) created by main thread at:
  695. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  696. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  697. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  698. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  699. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  700. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  701. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  702. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  703.  
  704. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65cc9) in operator delete[](void*)
  705. ==================
  706. ==================
  707. WARNING: ThreadSanitizer: data race (pid=7344)
  708. Write of size 8 at 0x7d0c00032768 by thread T4:
  709. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  710. #1 std::locale::operator=(std::locale const&) <null> (libstdc++.so.6+0x0000000a04ea)
  711. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  712. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  713. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  714. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  715. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  716. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  717. #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)
  718. #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)
  719. #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)
  720. #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)
  721. #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)
  722. #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)
  723. #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)
  724. #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)
  725. #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)
  726. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  727. #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)
  728. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  729. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  730. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  731. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  732. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  733. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  734. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  735.  
  736. Previous read of size 8 at 0x7d0c00032768 by main thread:
  737. [failed to restore the stack]
  738.  
  739. Thread T4 (tid=7364, running) created by main thread at:
  740. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  741. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  742. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  743. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  744. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  745. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  746. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  747. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  748.  
  749. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  750. ==================
  751. ==================
  752. WARNING: ThreadSanitizer: data race (pid=7344)
  753. Write of size 8 at 0x000002000cb0 by thread T4:
  754. #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)
  755. #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)
  756. #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)
  757. #3 t_string::operator=(t_string const&) src/tstring.cpp:487 (wesnoth-debug+0x0000012ca119)
  758. #4 font::load_font_config() src/font.cpp:1083 (wesnoth-debug+0x000001357956)
  759. #5 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
  760. #6 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  761. #7 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  762. #8 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  763. #9 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  764.  
  765. Previous read of size 8 at 0x000002000cb0 by main thread:
  766. [failed to restore the stack]
  767.  
  768. Location is global 'font::(anonymous namespace)::family_order_sans' of size 16 at 0x000002000cb0 (wesnoth-debug+0x000002000cb0)
  769.  
  770. Thread T4 (tid=7364, running) created by main thread at:
  771. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  772. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  773. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  774. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  775. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  776. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  777. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  778. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  779.  
  780. 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*&)
  781. ==================
  782. ==================
  783. WARNING: ThreadSanitizer: data race (pid=7344)
  784. Write of size 8 at 0x7d1400017ee0 by thread T4:
  785. #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
  786. #1 void boost::checked_delete<t_string_base>(t_string_base*) /usr/include/boost/core/checked_delete.hpp:34 (wesnoth-debug+0x0000006b935a)
  787. #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)
  788. #3 boost::detail::sp_counted_base::release() /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:146 (wesnoth-debug+0x00000042f7aa)
  789. #4 boost::detail::shared_count::~shared_count() /usr/include/boost/smart_ptr/detail/shared_count.hpp:473 (wesnoth-debug+0x00000042f8de)
  790. #5 boost::shared_ptr<t_string_base const>::~shared_ptr() /usr/include/boost/smart_ptr/shared_ptr.hpp:336 (wesnoth-debug+0x0000006b8e17)
  791. #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)
  792. #7 t_string::operator=(t_string const&) src/tstring.cpp:487 (wesnoth-debug+0x0000012ca119)
  793. #8 font::load_font_config() src/font.cpp:1083 (wesnoth-debug+0x000001357956)
  794. #9 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
  795. #10 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  796. #11 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  797. #12 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  798. #13 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  799.  
  800. Previous read of size 1 at 0x7d1400017ee1 by main thread:
  801. [failed to restore the stack]
  802.  
  803. Thread T4 (tid=7364, running) created by main thread at:
  804. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  805. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  806. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  807. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  808. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  809. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  810. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  811. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  812.  
  813. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  814. ==================
  815. ==================
  816. WARNING: ThreadSanitizer: data race (pid=7344)
  817. Read of size 8 at 0x7d0c0005c738 by main thread:
  818. #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)
  819. #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)
  820. #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)
  821. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
  822. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  823. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  824. #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)
  825. #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)
  826. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
  827. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
  828. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
  829. #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)
  830. #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)
  831. #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)
  832. #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)
  833. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
  834. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
  835. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
  836. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  837. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  838. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  839. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  840. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  841. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  842.  
  843. Previous write of size 8 at 0x7d0c0005c738 by thread T4:
  844. [failed to restore the stack]
  845.  
  846. As if synchronized via sleep:
  847. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  848. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  849. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  850. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  851. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  852. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  853.  
  854. Location is heap block of size 40 at 0x7d0c0005c730 allocated by thread T4:
  855. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  856. #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)
  857. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  858. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  859. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  860. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  861. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  862. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  863. #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)
  864. #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)
  865. #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)
  866. #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)
  867. #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)
  868. #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)
  869. #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)
  870. #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)
  871. #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)
  872. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  873. #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)
  874. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  875. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  876. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  877. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  878. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  879. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  880. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  881.  
  882. Thread T4 (tid=7364, running) created by main thread at:
  883. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  884. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  885. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  886. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  887. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  888. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  889. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  890. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  891.  
  892. 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&)
  893. ==================
  894. ==================
  895. WARNING: ThreadSanitizer: data race (pid=7344)
  896. Read of size 8 at 0x7d0c0005c740 by main thread:
  897. #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)
  898. #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)
  899. #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)
  900. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
  901. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  902. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  903. #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)
  904. #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)
  905. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
  906. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
  907. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
  908. #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)
  909. #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)
  910. #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)
  911. #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)
  912. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
  913. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
  914. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
  915. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  916. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  917. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  918. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  919. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  920. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  921.  
  922. Previous write of size 8 at 0x7d0c0005c740 by thread T4:
  923. [failed to restore the stack]
  924.  
  925. As if synchronized via sleep:
  926. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  927. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  928. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  929. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  930. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  931. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  932.  
  933. Location is heap block of size 40 at 0x7d0c0005c730 allocated by thread T4:
  934. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  935. #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)
  936. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  937. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  938. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  939. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  940. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  941. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  942. #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)
  943. #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)
  944. #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)
  945. #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)
  946. #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)
  947. #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)
  948. #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)
  949. #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)
  950. #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)
  951. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  952. #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)
  953. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  954. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  955. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  956. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  957. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  958. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  959. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  960.  
  961. Thread T4 (tid=7364, running) created by main thread at:
  962. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  963. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  964. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  965. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  966. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  967. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  968. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  969. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  970.  
  971. 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&)
  972. ==================
  973. ==================
  974. WARNING: ThreadSanitizer: data race (pid=7344)
  975. Read of size 8 at 0x7d4c0001da00 by main thread:
  976. #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)
  977. #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)
  978. #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)
  979. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
  980. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  981. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  982. #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)
  983. #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)
  984. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
  985. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
  986. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
  987. #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)
  988. #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)
  989. #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)
  990. #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)
  991. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
  992. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
  993. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
  994. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  995. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  996. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  997. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  998. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  999. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1000.  
  1001. Previous write of size 8 at 0x7d4c0001da00 by thread T4:
  1002. [failed to restore the stack]
  1003.  
  1004. As if synchronized via sleep:
  1005. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  1006. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  1007. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1008. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1009. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1010. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1011.  
  1012. Location is heap block of size 448 at 0x7d4c0001d880 allocated by thread T4:
  1013. #0 operator new[](unsigned long) <null> (libtsan.so.0+0x000000065a53)
  1014. #1 std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) <null> (libstdc++.so.6+0x0000000a0934)
  1015. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  1016. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  1017. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  1018. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  1019. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  1020. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  1021. #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)
  1022. #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)
  1023. #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)
  1024. #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)
  1025. #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)
  1026. #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)
  1027. #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)
  1028. #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)
  1029. #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)
  1030. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  1031. #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)
  1032. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  1033. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  1034. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  1035. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  1036. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  1037. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  1038. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  1039.  
  1040. Thread T4 (tid=7364, running) created by main thread at:
  1041. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  1042. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  1043. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  1044. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  1045. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  1046. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1047. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1048. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1049.  
  1050. 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&)
  1051. ==================
  1052. ==================
  1053. WARNING: ThreadSanitizer: data race (pid=7344)
  1054. Read of size 8 at 0x7d3400017760 by main thread:
  1055. #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)
  1056. #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)
  1057. #2 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
  1058. #3 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  1059. #4 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  1060. #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)
  1061. #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)
  1062. #7 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
  1063. #8 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
  1064. #9 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
  1065. #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)
  1066. #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)
  1067. #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)
  1068. #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)
  1069. #14 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
  1070. #15 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
  1071. #16 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
  1072. #17 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  1073. #18 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  1074. #19 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1075. #20 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1076. #21 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1077. #22 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1078.  
  1079. Previous write of size 8 at 0x7d3400017760 by thread T4:
  1080. [failed to restore the stack]
  1081.  
  1082. As if synchronized via sleep:
  1083. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  1084. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  1085. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1086. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1087. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1088. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1089.  
  1090. Location is heap block of size 208 at 0x7d3400017760 allocated by thread T4:
  1091. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  1092. #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)
  1093. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  1094. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  1095. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  1096. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  1097. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  1098. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  1099. #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)
  1100. #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)
  1101. #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)
  1102. #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)
  1103. #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)
  1104. #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)
  1105. #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)
  1106. #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)
  1107. #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)
  1108. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  1109. #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)
  1110. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  1111. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  1112. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  1113. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  1114. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  1115. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  1116. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  1117.  
  1118. Thread T4 (tid=7364, running) created by main thread at:
  1119. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  1120. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  1121. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  1122. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  1123. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  1124. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1125. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1126. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1127.  
  1128. 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
  1129. ==================
  1130. ==================
  1131. WARNING: ThreadSanitizer: data race (pid=7344)
  1132. Read of size 8 at 0x7d14000d8610 by main thread:
  1133. #0 memcmp <null> (libtsan.so.0+0x00000003f327)
  1134. #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)
  1135. #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)
  1136. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0d5)
  1137. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  1138. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  1139. #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)
  1140. #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)
  1141. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x0000005840de)
  1142. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583e41)
  1143. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x0000005508cd)
  1144. #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)
  1145. #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)
  1146. #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)
  1147. #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)
  1148. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x00000051908e)
  1149. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005185e2)
  1150. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x00000051322d)
  1151. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  1152. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  1153. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1154. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1155. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1156. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1157.  
  1158. Previous write of size 8 at 0x7d14000d8610 by thread T4:
  1159. [failed to restore the stack]
  1160.  
  1161. As if synchronized via sleep:
  1162. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  1163. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  1164. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1165. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1166. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1167. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1168.  
  1169. Location is heap block of size 72 at 0x7d14000d85e0 allocated by thread T4:
  1170. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  1171. #1 <null> <null> (libboost_locale.so.1.60.0+0x0000000621a1)
  1172. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012eef93)
  1173. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012ef0be)
  1174. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012ef205)
  1175. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012c9d10)
  1176. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:170 (wesnoth-debug+0x0000004ce7ae)
  1177. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x000001223364)
  1178. #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)
  1179. #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)
  1180. #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)
  1181. #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)
  1182. #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)
  1183. #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)
  1184. #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)
  1185. #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)
  1186. #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)
  1187. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x000001210319)
  1188. #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)
  1189. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000472022)
  1190. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e1b2b)
  1191. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042af2c)
  1192. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  1193. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  1194. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  1195. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  1196.  
  1197. Thread T4 (tid=7364, running) created by main thread at:
  1198. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  1199. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  1200. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  1201. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  1202. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  1203. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1204. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1205. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1206.  
  1207. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f327) in __interceptor_memcmp
  1208. ==================
  1209. ==================
  1210. WARNING: ThreadSanitizer: data race (pid=7344)
  1211. Read of size 1 at 0x7d1400014fe4 by main thread:
  1212. #0 t_string_base::str[abi:cxx11]() const src/tstring.cpp:435 (wesnoth-debug+0x0000012c9b8b)
  1213. #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)
  1214. #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)
  1215. #3 font::ttext::recalculate(bool) const src/text.cpp:617 (wesnoth-debug+0x0000014220ac)
  1216. #4 font::ttext::rerender(bool) const src/text.cpp:750 (wesnoth-debug+0x000001422bc0)
  1217. #5 font::ttext::render() const src/text.cpp:168 (wesnoth-debug+0x0000014200f9)
  1218. #6 draw src/gui/core/canvas.cpp:1404 (wesnoth-debug+0x000000b35ce4)
  1219. #7 gui2::tcanvas::draw(bool) src/gui/core/canvas.cpp:1491 (wesnoth-debug+0x000000b369d7)
  1220. #8 gui2::tcanvas::blit(surface&, SDL_Rect) src/gui/core/canvas.cpp:1499 (wesnoth-debug+0x000000b36b49)
  1221. #9 gui2::tcontrol::impl_draw_background(surface&, int, int) src/gui/widgets/control.cpp:411 (wesnoth-debug+0x000000584dbb)
  1222. #10 gui2::twidget::draw_background(surface&, int, int) src/gui/widgets/widget.cpp:352 (wesnoth-debug+0x00000060c641)
  1223. #11 gui2::twindow::draw() src/gui/widgets/window.cpp:887 (wesnoth-debug+0x000000613738)
  1224. #12 void std::_Mem_fn_base<void (gui2::twindow::*)(), true>::operator()<, void>(gui2::twindow*) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x000000628e70)
  1225. #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)
  1226. #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)
  1227. #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)
  1228. #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)
  1229. #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)
  1230. #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)
  1231. #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)
  1232. #20 gui2::event::tdispatcher::fire(gui2::event::tevent, gui2::twidget&) src/gui/core/event/dispatcher.cpp:174 (wesnoth-debug+0x000000b39dcb)
  1233. #21 gui2::event::thandler::draw(bool) src/gui/core/event/handler.cpp:530 (wesnoth-debug+0x000000513c64)
  1234. #22 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:357 (wesnoth-debug+0x0000005131e9)
  1235. #23 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  1236. #24 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  1237. #25 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1238. #26 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1239. #27 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1240. #28 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1241.  
  1242. Previous write of size 8 at 0x7d1400014fe0 by thread T4:
  1243. [failed to restore the stack]
  1244.  
  1245. As if synchronized via sleep:
  1246. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  1247. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  1248. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1249. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1250. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1251. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1252.  
  1253. Location is heap block of size 72 at 0x7d1400014fa0 allocated by thread T4:
  1254. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  1255. #1 t_string::t_string(t_string_base const&) src/tstring.cpp:469 (wesnoth-debug+0x0000012c9f12)
  1256. #2 parse_variable src/serialization/parser.cpp:330 (wesnoth-debug+0x000001285660)
  1257. #3 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
  1258. #4 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
  1259. #5 font::load_font_config() src/font.cpp:1061 (wesnoth-debug+0x0000013574a2)
  1260. #6 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
  1261. #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  1262. #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  1263. #9 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  1264. #10 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  1265.  
  1266. Thread T4 (tid=7364, running) created by main thread at:
  1267. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  1268. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  1269. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  1270. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  1271. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  1272. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1273. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1274. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1275.  
  1276. SUMMARY: ThreadSanitizer: data race src/tstring.cpp:435 in t_string_base::str[abi:cxx11]() const
  1277. ==================
  1278. ==================
  1279. WARNING: ThreadSanitizer: data race (pid=7344)
  1280. Read of size 1 at 0x7d1400014fb0 by main thread:
  1281. #0 t_string_base::walker::update() src/tstring.cpp:83 (wesnoth-debug+0x0000012c7938)
  1282. #1 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012c776b)
  1283. #2 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012c9c5f)
  1284. #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)
  1285. #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)
  1286. #5 font::ttext::recalculate(bool) const src/text.cpp:617 (wesnoth-debug+0x0000014220ac)
  1287. #6 font::ttext::rerender(bool) const src/text.cpp:750 (wesnoth-debug+0x000001422bc0)
  1288. #7 font::ttext::render() const src/text.cpp:168 (wesnoth-debug+0x0000014200f9)
  1289. #8 draw src/gui/core/canvas.cpp:1404 (wesnoth-debug+0x000000b35ce4)
  1290. #9 gui2::tcanvas::draw(bool) src/gui/core/canvas.cpp:1491 (wesnoth-debug+0x000000b369d7)
  1291. #10 gui2::tcanvas::blit(surface&, SDL_Rect) src/gui/core/canvas.cpp:1499 (wesnoth-debug+0x000000b36b49)
  1292. #11 gui2::tcontrol::impl_draw_background(surface&, int, int) src/gui/widgets/control.cpp:411 (wesnoth-debug+0x000000584dbb)
  1293. #12 gui2::twidget::draw_background(surface&, int, int) src/gui/widgets/widget.cpp:352 (wesnoth-debug+0x00000060c641)
  1294. #13 gui2::twindow::draw() src/gui/widgets/window.cpp:887 (wesnoth-debug+0x000000613738)
  1295. #14 void std::_Mem_fn_base<void (gui2::twindow::*)(), true>::operator()<, void>(gui2::twindow*) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x000000628e70)
  1296. #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)
  1297. #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)
  1298. #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)
  1299. #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)
  1300. #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)
  1301. #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)
  1302. #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)
  1303. #22 gui2::event::tdispatcher::fire(gui2::event::tevent, gui2::twidget&) src/gui/core/event/dispatcher.cpp:174 (wesnoth-debug+0x000000b39dcb)
  1304. #23 gui2::event::thandler::draw(bool) src/gui/core/event/handler.cpp:530 (wesnoth-debug+0x000000513c64)
  1305. #24 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:357 (wesnoth-debug+0x0000005131e9)
  1306. #25 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000134063d)
  1307. #26 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x0000006129f7)
  1308. #27 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1309. #28 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1310. #29 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1311. #30 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1312.  
  1313. Previous write of size 8 at 0x7d1400014fb0 by thread T4:
  1314. [failed to restore the stack]
  1315.  
  1316. As if synchronized via sleep:
  1317. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  1318. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  1319. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1320. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1321. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1322. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1323.  
  1324. Location is heap block of size 72 at 0x7d1400014fa0 allocated by thread T4:
  1325. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  1326. #1 t_string::t_string(t_string_base const&) src/tstring.cpp:469 (wesnoth-debug+0x0000012c9f12)
  1327. #2 parse_variable src/serialization/parser.cpp:330 (wesnoth-debug+0x000001285660)
  1328. #3 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x000001282fb3)
  1329. #4 read(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:402 (wesnoth-debug+0x0000012862d6)
  1330. #5 font::load_font_config() src/font.cpp:1061 (wesnoth-debug+0x0000013574a2)
  1331. #6 operator() src/wesnoth.cpp:653 (wesnoth-debug+0x00000042af97)
  1332. #7 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e567)
  1333. #8 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556fa0)
  1334. #9 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x0000005601ac)
  1335. #10 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  1336.  
  1337. Thread T4 (tid=7364, running) created by main thread at:
  1338. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  1339. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  1340. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556645)
  1341. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000055012d)
  1342. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x00000054870d)
  1343. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1344. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1345. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1346.  
  1347. SUMMARY: ThreadSanitizer: data race src/tstring.cpp:83 in t_string_base::walker::update()
  1348. ==================
  1349. 20160619 16:32:55 warning config: add-on 'Orb_Test' has no _info.cfg; cannot read version info
  1350. ==================
  1351. WARNING: ThreadSanitizer: data race (pid=7344)
  1352. Write of size 4 at 0x000001ff6934 by main thread:
  1353. #0 ~tdraw_interval_setter src/gui/widgets/window.cpp:626 (wesnoth-debug+0x0000006125e6)
  1354. #1 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:639 (wesnoth-debug+0x000000612ba9)
  1355. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1356. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1357. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1358. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1359.  
  1360. Previous read of size 4 at 0x000001ff6934 by thread T1:
  1361. #0 draw_timer src/gui/widgets/window.cpp:151 (wesnoth-debug+0x0000006104be)
  1362. #1 <null> <null> (libSDL2-2.0.so.0+0x00000007b611)
  1363.  
  1364. As if synchronized via sleep:
  1365. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  1366. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  1367. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548746)
  1368. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550c67)
  1369. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b4a5)
  1370. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042d03a)
  1371.  
  1372. Location is global 'gui2::(anonymous namespace)::draw_interval' of size 4 at 0x000001ff6934 (wesnoth-debug+0x000001ff6934)
  1373.  
  1374. Thread T1 'SDLTimer' (tid=7346, running) created by main thread at:
  1375. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  1376. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
  1377. #2 __libc_start_main <null> (libc.so.6+0x0000000205ef)
  1378.  
  1379. SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:626 in ~tdraw_interval_setter
  1380. ==================
  1381. Checking lua scripts... ok
Advertisement
Add Comment
Please, Sign In to add comment