shadowm

Untitled

Jun 16th, 2016
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 106.65 KB | None | 0 0
  1. 20:55:17 shadowm@nanacore ~/src/wesnoth % ./wesnoth-debug
  2. Battle for Wesnoth v1.13.4+dev (fe80448-Clean)
  3. Started on Thu Jun 16 21:10:16 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=24551)
  14. Write of size 8 at 0x7d280000e9d8 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+0x0000004ef05c)
  18. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
  19. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  20.  
  21. Previous write of size 8 at 0x7d280000e9d8 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 0x7d280000e9c0 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+0x0000004ef05c)
  29. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
  30. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  31.  
  32. Thread T2 'PulseHotplug' (tid=24563, 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+0x0000004ef05c)
  36. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
  37. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  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=24551)
  43. Write of size 1 at 0x7d280000e9e6 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+0x0000004ef05c)
  47. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
  48. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  49.  
  50. Previous read of size 1 at 0x7d280000e9e6 by thread T2:
  51. #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
  52. #1 <null> <null> (libpulsecommon-8.0.so+0x00000004311a)
  53.  
  54. Location is heap block of size 152 at 0x7d280000e9c0 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+0x0000004ef05c)
  58. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
  59. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  60.  
  61. Thread T2 'PulseHotplug' (tid=24563, 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+0x0000004ef05c)
  65. #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
  66. #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  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. 20160616 21:10:35 warning gui/event: Unhandled event 4352.
  72. 20160616 21:10:35 warning gui/event: Unhandled event 4352.
  73. ==================
  74. WARNING: ThreadSanitizer: data race (pid=24551)
  75. Write of size 8 at 0x7d1000004e70 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+0x000000441fdf)
  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+0x00000043cd1f)
  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+0x00000043720c)
  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+0x000000475a16)
  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+0x000000474ebb)
  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+0x0000012b42bf)
  83. #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
  84. #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
  85. #9 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
  86. #10 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
  87. #11 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
  88. #12 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
  89. #13 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+0x0000009de427)
  90. #14 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+0x0000009dca0f)
  91. #15 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
  92. #16 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
  93. #17 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
  94. #18 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  95. #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
  96. #20 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
  97. #21 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
  98. #22 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  99. #23 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  100. #24 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  101. #25 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  102. #26 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  103.  
  104. Previous read of size 1 at 0x7d1000004e76 by main thread:
  105. [failed to restore the stack]
  106.  
  107. Thread T4 (tid=24565, running) created by main thread at:
  108. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  109. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  110. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  111. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  112. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  113. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  114. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  115. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  116.  
  117. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
  118. ==================
  119. ==================
  120. WARNING: ThreadSanitizer: data race (pid=24551)
  121. Write of size 8 at 0x000001fe0340 by thread T4:
  122. #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+0x000000475a22)
  123. #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+0x000000474ebb)
  124. #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+0x0000012b42bf)
  125. #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
  126. #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
  127. #5 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
  128. #6 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
  129. #7 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
  130. #8 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
  131. #9 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+0x0000009de427)
  132. #10 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+0x0000009dca0f)
  133. #11 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
  134. #12 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
  135. #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
  136. #14 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  137. #15 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
  138. #16 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
  139. #17 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
  140. #18 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  141. #19 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  142. #20 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  143. #21 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  144. #22 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  145.  
  146. Previous read of size 8 at 0x000001fe0340 by main thread:
  147. [failed to restore the stack]
  148.  
  149. Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fe0340 (wesnoth-debug+0x000001fe0340)
  150.  
  151. Thread T4 (tid=24565, running) created by main thread at:
  152. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  153. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  154. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  155. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  156. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  157. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  158. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  159. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  160.  
  161. 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&)
  162. ==================
  163. ==================
  164. WARNING: ThreadSanitizer: data race (pid=24551)
  165. Write of size 8 at 0x000001fe0348 by thread T4:
  166. #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+0x000000475a3d)
  167. #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+0x000000474ebb)
  168. #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+0x0000012b42bf)
  169. #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
  170. #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
  171. #5 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
  172. #6 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
  173. #7 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
  174. #8 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
  175. #9 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+0x0000009de427)
  176. #10 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+0x0000009dca0f)
  177. #11 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
  178. #12 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
  179. #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
  180. #14 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  181. #15 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
  182. #16 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
  183. #17 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
  184. #18 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  185. #19 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  186. #20 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  187. #21 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  188. #22 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  189.  
  190. Previous read of size 8 at 0x000001fe0348 by main thread:
  191. [failed to restore the stack]
  192.  
  193. Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fe0340 (wesnoth-debug+0x000001fe0348)
  194.  
  195. Thread T4 (tid=24565, running) created by main thread at:
  196. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  197. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  198. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  199. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  200. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  201. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  202. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  203. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  204.  
  205. 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&)
  206. ==================
  207. ==================
  208. WARNING: ThreadSanitizer: data race (pid=24551)
  209. Read of size 8 at 0x7d2000098f10 by main thread:
  210. #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
  211. #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)
  212. #2 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012b3291)
  213. #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012b5785)
  214. #4 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  215. #5 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  216. #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  217. #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  218. #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  219. #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+0x00000055ed54)
  220. #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+0x00000055deff)
  221. #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+0x00000055c4cc)
  222. #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+0x000000559d9a)
  223. #13 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  224. #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  225. #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  226. #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  227. #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  228. #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  229. #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  230. #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  231. #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  232.  
  233. Previous write of size 8 at 0x7d2000098f10 by thread T4:
  234. [failed to restore the stack]
  235.  
  236. As if synchronized via sleep:
  237. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  238. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  239. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  240. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  241. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  242. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  243.  
  244. Location is heap block of size 128 at 0x7d2000098f00 allocated by thread T4:
  245. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  246. #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+0x0000004463f8)
  247. #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+0x00000044201c)
  248. #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+0x00000043cd6e)
  249. #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+0x0000004758c9)
  250. #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+0x000000474ebb)
  251. #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+0x0000012b42bf)
  252. #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
  253. #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
  254. #9 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
  255. #10 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
  256. #11 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
  257. #12 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
  258. #13 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+0x0000009de427)
  259. #14 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+0x0000009dca0f)
  260. #15 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
  261. #16 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
  262. #17 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
  263. #18 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  264. #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
  265. #20 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
  266. #21 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
  267. #22 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  268. #23 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  269. #24 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  270. #25 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  271. #26 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  272.  
  273. Thread T4 (tid=24565, running) created by main thread at:
  274. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  275. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  276. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  277. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  278. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  279. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  280. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  281. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  282.  
  283. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26ee1) in __interceptor_memcpy
  284. ==================
  285. 20160616 21:10:36 warning general: no location found for 'data/add-ons/Era_of_Chaos/translations', skipping textdomain
  286. 20160616 21:10:36 warning general: no location found for 'data/add-ons/Orb_Test/translations', skipping textdomain
  287. ==================
  288. WARNING: ThreadSanitizer: data race (pid=24551)
  289. Read of size 1 at 0x7d280000e870 by main thread:
  290. #0 get_locale src/gettext_boost.cpp:186 (wesnoth-debug+0x0000012de742)
  291. #1 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
  292. #2 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  293. #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  294. #4 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  295. #5 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  296. #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  297. #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  298. #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  299. #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+0x00000055ed54)
  300. #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+0x00000055deff)
  301. #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+0x00000055c4cc)
  302. #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+0x000000559d9a)
  303. #13 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  304. #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  305. #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  306. #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  307. #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  308. #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  309. #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  310. #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  311. #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  312.  
  313. Previous write of size 1 at 0x7d280000e870 by thread T4:
  314. [failed to restore the stack]
  315.  
  316. As if synchronized via sleep:
  317. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  318. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  319. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  320. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  321. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  322. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  323.  
  324. Location is heap block of size 152 at 0x7d280000e7e0 allocated by main thread:
  325. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  326. #1 get_manager src/gettext_boost.cpp:204 (wesnoth-debug+0x0000012de7dc)
  327. #2 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:251 (wesnoth-debug+0x0000012dec2d)
  328. #3 init_locale src/wesnoth.cpp:479 (wesnoth-debug+0x00000042ab2d)
  329. #4 do_gameloop src/wesnoth.cpp:589 (wesnoth-debug+0x00000042b012)
  330. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  331.  
  332. Thread T4 (tid=24565, running) created by main thread at:
  333. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  334. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  335. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  336. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  337. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  338. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  339. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  340. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  341.  
  342. SUMMARY: ThreadSanitizer: data race src/gettext_boost.cpp:186 in get_locale
  343. ==================
  344. ==================
  345. WARNING: ThreadSanitizer: data race (pid=24551)
  346. Read of size 8 at 0x7d0c00040988 by main thread:
  347. #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:107 (wesnoth-debug+0x0000012dfd3b)
  348. #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+0x0000012dfb51)
  349. #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+0x0000012df7dd)
  350. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
  351. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  352. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  353. #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  354. #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  355. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  356. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  357. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  358. #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+0x00000055ed54)
  359. #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+0x00000055deff)
  360. #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+0x00000055c4cc)
  361. #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+0x000000559d9a)
  362. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  363. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  364. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  365. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  366. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  367. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  368. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  369. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  370. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  371.  
  372. Previous write of size 8 at 0x7d0c00040988 by thread T4:
  373. [failed to restore the stack]
  374.  
  375. As if synchronized via sleep:
  376. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  377. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  378. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  379. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  380. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  381. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  382.  
  383. Location is heap block of size 40 at 0x7d0c00040980 allocated by thread T4:
  384. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  385. #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)
  386. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
  387. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
  388. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  389. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  390. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
  391. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
  392. #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+0x000001237781)
  393. #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+0x000001233681)
  394. #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+0x00000122ed02)
  395. #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+0x0000012293bb)
  396. #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+0x00000122410b)
  397. #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+0x00000121f771)
  398. #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+0x0000012194f2)
  399. #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+0x000001214624)
  400. #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:377 (wesnoth-debug+0x000001210f4f)
  401. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
  402. #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
  403. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
  404. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
  405. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  406. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  407. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  408. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  409. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  410.  
  411. Thread T4 (tid=24565, running) created by main thread at:
  412. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  413. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  414. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  415. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  416. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  417. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  418. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  419. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  420.  
  421. 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&)
  422. ==================
  423. ==================
  424. WARNING: ThreadSanitizer: data race (pid=24551)
  425. Read of size 8 at 0x7d0c00040990 by main thread:
  426. #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:108 (wesnoth-debug+0x0000012dfd62)
  427. #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+0x0000012dfb51)
  428. #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+0x0000012df7dd)
  429. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
  430. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  431. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  432. #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  433. #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  434. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  435. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  436. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  437. #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+0x00000055ed54)
  438. #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+0x00000055deff)
  439. #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+0x00000055c4cc)
  440. #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+0x000000559d9a)
  441. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  442. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  443. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  444. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  445. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  446. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  447. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  448. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  449. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  450.  
  451. Previous write of size 8 at 0x7d0c00040990 by thread T4:
  452. [failed to restore the stack]
  453.  
  454. As if synchronized via sleep:
  455. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  456. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  457. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  458. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  459. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  460. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  461.  
  462. Location is heap block of size 40 at 0x7d0c00040980 allocated by thread T4:
  463. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  464. #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)
  465. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
  466. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
  467. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  468. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  469. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
  470. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
  471. #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+0x000001237781)
  472. #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+0x000001233681)
  473. #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+0x00000122ed02)
  474. #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+0x0000012293bb)
  475. #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+0x00000122410b)
  476. #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+0x00000121f771)
  477. #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+0x0000012194f2)
  478. #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+0x000001214624)
  479. #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:377 (wesnoth-debug+0x000001210f4f)
  480. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
  481. #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
  482. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
  483. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
  484. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  485. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  486. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  487. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  488. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  489.  
  490. Thread T4 (tid=24565, running) created by main thread at:
  491. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  492. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  493. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  494. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  495. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  496. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  497. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  498. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  499.  
  500. 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&)
  501. ==================
  502. ==================
  503. WARNING: ThreadSanitizer: data race (pid=24551)
  504. Read of size 8 at 0x7d4c0001eb80 by main thread:
  505. #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:110 (wesnoth-debug+0x0000012dfd88)
  506. #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+0x0000012dfb51)
  507. #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+0x0000012df7dd)
  508. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
  509. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  510. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  511. #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  512. #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  513. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  514. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  515. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  516. #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+0x00000055ed54)
  517. #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+0x00000055deff)
  518. #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+0x00000055c4cc)
  519. #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+0x000000559d9a)
  520. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  521. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  522. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  523. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  524. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  525. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  526. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  527. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  528. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  529.  
  530. Previous write of size 8 at 0x7d4c0001eb80 by thread T4:
  531. [failed to restore the stack]
  532.  
  533. As if synchronized via sleep:
  534. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  535. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  536. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  537. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  538. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  539. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  540.  
  541. Location is heap block of size 448 at 0x7d4c0001ea00 allocated by thread T4:
  542. #0 operator new[](unsigned long) <null> (libtsan.so.0+0x000000065a53)
  543. #1 std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) <null> (libstdc++.so.6+0x0000000a0934)
  544. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
  545. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
  546. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  547. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  548. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
  549. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
  550. #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+0x000001237781)
  551. #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+0x000001233681)
  552. #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+0x00000122ed02)
  553. #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+0x0000012293bb)
  554. #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+0x00000122410b)
  555. #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+0x00000121f771)
  556. #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+0x0000012194f2)
  557. #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+0x000001214624)
  558. #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:377 (wesnoth-debug+0x000001210f4f)
  559. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
  560. #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
  561. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
  562. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
  563. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  564. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  565. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  566. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  567. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  568.  
  569. Thread T4 (tid=24565, running) created by main thread at:
  570. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  571. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  572. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  573. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  574. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  575. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  576. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  577. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  578.  
  579. 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&)
  580. ==================
  581. ==================
  582. WARNING: ThreadSanitizer: data race (pid=24551)
  583. Read of size 8 at 0x7d34000263d0 by main thread:
  584. #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+0x0000012dfb6f)
  585. #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+0x0000012df7dd)
  586. #2 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
  587. #3 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  588. #4 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  589. #5 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  590. #6 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  591. #7 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  592. #8 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  593. #9 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  594. #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+0x00000055ed54)
  595. #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+0x00000055deff)
  596. #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+0x00000055c4cc)
  597. #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+0x000000559d9a)
  598. #14 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  599. #15 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  600. #16 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  601. #17 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  602. #18 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  603. #19 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  604. #20 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  605. #21 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  606. #22 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  607.  
  608. Previous write of size 8 at 0x7d34000263d0 by thread T4:
  609. [failed to restore the stack]
  610.  
  611. As if synchronized via sleep:
  612. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  613. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  614. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  615. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  616. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  617. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  618.  
  619. Location is heap block of size 208 at 0x7d34000263d0 allocated by thread T4:
  620. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  621. #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)
  622. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
  623. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
  624. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  625. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  626. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
  627. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
  628. #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+0x000001237781)
  629. #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+0x000001233681)
  630. #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+0x00000122ed02)
  631. #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+0x0000012293bb)
  632. #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+0x00000122410b)
  633. #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+0x00000121f771)
  634. #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+0x0000012194f2)
  635. #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+0x000001214624)
  636. #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:377 (wesnoth-debug+0x000001210f4f)
  637. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
  638. #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
  639. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
  640. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
  641. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  642. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  643. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  644. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  645. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  646.  
  647. Thread T4 (tid=24565, running) created by main thread at:
  648. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  649. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  650. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  651. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  652. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  653. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  654. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  655. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  656.  
  657. 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
  658. ==================
  659. ==================
  660. WARNING: ThreadSanitizer: data race (pid=24551)
  661. Read of size 8 at 0x7d140003ca30 by main thread:
  662. #0 memcmp <null> (libtsan.so.0+0x00000003f327)
  663. #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)
  664. #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+0x0000012df7dd)
  665. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
  666. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  667. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  668. #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
  669. #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
  670. #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
  671. #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
  672. #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
  673. #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+0x00000055ed54)
  674. #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+0x00000055deff)
  675. #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+0x00000055c4cc)
  676. #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+0x000000559d9a)
  677. #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
  678. #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
  679. #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
  680. #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
  681. #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
  682. #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  683. #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  684. #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  685. #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  686.  
  687. Previous write of size 8 at 0x7d140003ca30 by thread T4:
  688. [failed to restore the stack]
  689.  
  690. As if synchronized via sleep:
  691. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  692. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  693. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  694. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  695. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  696. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  697.  
  698. Location is heap block of size 72 at 0x7d140003ca00 allocated by thread T4:
  699. #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
  700. #1 <null> <null> (libboost_locale.so.1.60.0+0x0000000621a1)
  701. #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
  702. #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
  703. #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
  704. #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
  705. #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
  706. #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
  707. #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+0x000001237781)
  708. #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+0x000001233681)
  709. #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+0x00000122ed02)
  710. #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+0x0000012293bb)
  711. #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+0x00000122410b)
  712. #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+0x00000121f771)
  713. #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+0x0000012194f2)
  714. #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+0x000001214624)
  715. #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:377 (wesnoth-debug+0x000001210f4f)
  716. #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
  717. #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
  718. #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
  719. #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
  720. #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
  721. #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
  722. #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
  723. #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
  724. #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
  725.  
  726. Thread T4 (tid=24565, running) created by main thread at:
  727. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  728. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
  729. #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
  730. #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
  731. #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
  732. #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  733. #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  734. #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  735.  
  736. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f327) in __interceptor_memcmp
  737. ==================
  738. 20160616 21:10:37 warning config: add-on 'Orb_Test' has no _info.cfg; cannot read version info
  739. ==================
  740. WARNING: ThreadSanitizer: data race (pid=24551)
  741. Write of size 4 at 0x000001fd78d4 by main thread:
  742. #0 ~tdraw_interval_setter src/gui/widgets/window.cpp:626 (wesnoth-debug+0x000000612486)
  743. #1 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:639 (wesnoth-debug+0x000000612a49)
  744. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  745. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  746. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  747. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  748.  
  749. Previous read of size 4 at 0x000001fd78d4 by thread T1:
  750. #0 draw_timer src/gui/widgets/window.cpp:151 (wesnoth-debug+0x00000061035e)
  751. #1 <null> <null> (libSDL2-2.0.so.0+0x00000007b611)
  752.  
  753. As if synchronized via sleep:
  754. #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
  755. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
  756. #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
  757. #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
  758. #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
  759. #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
  760.  
  761. Location is global 'gui2::(anonymous namespace)::draw_interval' of size 4 at 0x000001fd78d4 (wesnoth-debug+0x000001fd78d4)
  762.  
  763. Thread T1 'SDLTimer' (tid=24553, running) created by main thread at:
  764. #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
  765. #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
  766. #2 __libc_start_main <null> (libc.so.6+0x0000000205ef)
  767.  
  768. SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:626 in ~tdraw_interval_setter
  769. ==================
  770. Checking lua scripts... ok
Advertisement
Add Comment
Please, Sign In to add comment