shadowm

naia-iftu-boot-after-prompt.txt

May 25th, 2018
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 204.44 KB | None | 0 0
  1. ==================
  2. WARNING: ThreadSanitizer: data race (pid=17519)
  3. Write of size 4 at 0x7b74000e98e8 by main thread:
  4. #0 gui2::window::close() src/gui/widgets/window.hpp:185 (wesnoth-debug+0x397376f)
  5. #1 gui2::window::set_retval(int, bool) src/gui/widgets/window.hpp:368 (wesnoth-debug+0x39739aa)
  6. #2 gui2::button::signal_handler_left_button_click(gui2::event::ui_event, bool&) src/gui/widgets/button.cpp:139 (wesnoth-debug+0x3970bf4)
  7. #3 void std::__invoke_impl<void, void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event, bool&>(std::__invoke_memfun_deref, void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event&&, bool&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x397d8a3)
  8. #4 std::__invoke_result<void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event, bool&>::type std::__invoke<void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event, bool&>(void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event&&, bool&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x397aa12)
  9. #5 void std::_Bind<void (gui2::button::*(gui2::button*, boost::arg<2>, boost::arg<3>))(gui2::event::ui_event, bool&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul, 1ul, 2ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x39794ef)
  10. #6 void std::_Bind<void (gui2::button::*(gui2::button*, boost::arg<2>, boost::arg<3>))(gui2::event::ui_event, bool&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x397778d)
  11. #7 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::button::*(gui2::button*, boost::arg<2>, boost::arg<3>))(gui2::event::ui_event, bool&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3975c86)
  12. #8 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)
  13. #9 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)
  14. #10 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)
  15. #11 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)
  16. #12 gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::mouse_button_click(gui2::widget*) <null> (wesnoth-debug+0x41fae4e)
  17. #13 gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::signal_handler_sdl_button_up(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:490 (wesnoth-debug+0x41e6ae9)
  18. #14 void std::__invoke_impl<void, void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x420acf7)
  19. #15 std::__invoke_result<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x42089bb)
  20. #16 void std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x42065e4)
  21. #17 void std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x420359c)
  22. #18 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) <null> (wesnoth-debug+0x41f9b33)
  23. #19 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)
  24. #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)
  25. #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)
  26. #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)
  27. #23 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)
  28. #24 gui2::event::sdl_event_handler::mouse_button_up(point const&, unsigned char) src/gui/core/event/handler.cpp:605 (wesnoth-debug+0x4211998)
  29. #25 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:369 (wesnoth-debug+0x420cf69)
  30. #26 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  31. #27 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  32. #28 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  33. #29 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  34. #30 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  35. #31 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  36. #32 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  37. #33 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  38. #34 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  39. #35 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  40. #36 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  41. #37 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  42.  
  43. Previous read of size 4 at 0x7b74000e98e8 by thread T11:
  44. #0 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:567 (wesnoth-debug+0x3c461ac)
  45. #1 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  46. #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  47. #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  48. #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  49. #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  50. #6 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  51. #7 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  52. #8 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  53. #9 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  54. #10 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  55. #11 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  56. #12 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  57. #13 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  58. #14 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  59. #15 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  60. #16 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  61. #17 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  62. #18 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  63. #19 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  64. #20 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  65. #21 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  66. #22 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  67. #23 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  68.  
  69. As if synchronized via sleep:
  70. #0 nanosleep <null> (libtsan.so.0+0x49490)
  71. #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)
  72. #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  73. #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  74. #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  75. #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  76. #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  77. #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  78. #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  79. #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  80. #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  81. #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  82.  
  83. Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:
  84. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  85. #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)
  86. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)
  87. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  88. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  89. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  90. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  91. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  92. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  93. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  94. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  95. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  96. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  97. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  98. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  99. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  100. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  101. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  102. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  103. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  104. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  105. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  106. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  107. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  108. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  109.  
  110. Thread T11 (tid=17965, running) created by main thread at:
  111. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  112. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  113. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  114. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  115. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  116. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  117. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  118. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  119. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  120. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  121. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  122. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  123. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  124. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  125.  
  126. SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.hpp:185 in gui2::window::close()
  127. ==================
  128. ==================
  129. WARNING: ThreadSanitizer: data race (pid=17519)
  130. Write of size 8 at 0x7f376ee863d0 by thread T11:
  131. #0 memcpy <null> (libtsan.so.0+0x31065)
  132. #1 <null> <null> (libSDL2-2.0.so.0+0x91666)
  133. #2 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:599 (wesnoth-debug+0x3c46861)
  134. #3 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  135. #4 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  136. #5 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  137. #6 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  138. #7 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  139. #8 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  140. #9 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  141. #10 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  142. #11 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  143. #12 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  144. #13 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  145. #14 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  146. #15 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  147. #16 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  148. #17 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  149. #18 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  150. #19 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  151. #20 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  152. #21 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  153. #22 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  154. #23 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  155. #24 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  156. #25 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  157.  
  158. Previous write of size 8 at 0x7f376ee863d0 by main thread:
  159. #0 memcpy <null> (libtsan.so.0+0x31065)
  160. #1 <null> <null> (libSDL2-2.0.so.0+0x91666)
  161. #2 gui2::window::draw() src/gui/widgets/window.cpp:743 (wesnoth-debug+0x3c496a2)
  162. #3 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)
  163. #4 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)
  164. #5 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)
  165. #6 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)
  166. #7 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)
  167. #8 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)
  168. #9 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)
  169. #10 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)
  170. #11 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)
  171. #12 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)
  172. #13 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)
  173. #14 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  174. #15 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  175. #16 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  176. #17 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  177. #18 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  178. #19 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  179. #20 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  180. #21 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  181. #22 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  182. #23 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  183. #24 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  184. #25 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  185.  
  186. As if synchronized via sleep:
  187. #0 nanosleep <null> (libtsan.so.0+0x49490)
  188. #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)
  189. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  190. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  191. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  192. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  193. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  194. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  195. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  196. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  197. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  198. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  199. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  200. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  201. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  202. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  203. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  204. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  205. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  206. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  207. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  208. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  209. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  210. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  211. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  212.  
  213. Location is heap block of size 8071680 at 0x7f376ea33000 allocated by main thread:
  214. #0 malloc <null> (libtsan.so.0+0x2aa63)
  215. #1 <null> <null> (libSDL2-2.0.so.0+0x66932)
  216. #2 CVideo::init_window() src/video.cpp:247 (wesnoth-debug+0x6980463)
  217. #3 game_launcher::init_video() src/game_launcher.cpp:353 (wesnoth-debug+0x40ea83a)
  218. #4 do_gameloop src/wesnoth.cpp:673 (wesnoth-debug+0x3ca25a2)
  219. #5 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  220.  
  221. Thread T11 (tid=17965, running) created by main thread at:
  222. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  223. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  224. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  225. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  226. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  227. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  228. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  229. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  230. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  231. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  232. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  233. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  234. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  235. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  236.  
  237. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x31065) in memcpy
  238. ==================
  239. ==================
  240. WARNING: ThreadSanitizer: data race (pid=17519)
  241. Read of size 4 at 0x7b74000e98f0 by thread T11:
  242. #0 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:607 (wesnoth-debug+0x3c46d40)
  243. #1 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  244. #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  245. #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  246. #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  247. #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  248. #6 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  249. #7 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  250. #8 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  251. #9 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  252. #10 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  253. #11 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  254. #12 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  255. #13 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  256. #14 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  257. #15 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  258. #16 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  259. #17 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  260. #18 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  261. #19 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  262. #20 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  263. #21 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  264. #22 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  265. #23 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  266.  
  267. Previous write of size 4 at 0x7b74000e98f0 by main thread:
  268. #0 gui2::window::set_retval(int, bool) src/gui/widgets/window.hpp:366 (wesnoth-debug+0x397389f)
  269. #1 gui2::button::signal_handler_left_button_click(gui2::event::ui_event, bool&) src/gui/widgets/button.cpp:139 (wesnoth-debug+0x3970bf4)
  270. #2 void std::__invoke_impl<void, void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event, bool&>(std::__invoke_memfun_deref, void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event&&, bool&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x397d8a3)
  271. #3 std::__invoke_result<void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event, bool&>::type std::__invoke<void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event, bool&>(void (gui2::button::*&)(gui2::event::ui_event, bool&), gui2::button*&, gui2::event::ui_event&&, bool&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x397aa12)
  272. #4 void std::_Bind<void (gui2::button::*(gui2::button*, boost::arg<2>, boost::arg<3>))(gui2::event::ui_event, bool&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul, 1ul, 2ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x39794ef)
  273. #5 void std::_Bind<void (gui2::button::*(gui2::button*, boost::arg<2>, boost::arg<3>))(gui2::event::ui_event, bool&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x397778d)
  274. #6 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::button::*(gui2::button*, boost::arg<2>, boost::arg<3>))(gui2::event::ui_event, bool&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3975c86)
  275. #7 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)
  276. #8 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)
  277. #9 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)
  278. #10 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)
  279. #11 gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::mouse_button_click(gui2::widget*) <null> (wesnoth-debug+0x41fae4e)
  280. #12 gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::signal_handler_sdl_button_up(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:490 (wesnoth-debug+0x41e6ae9)
  281. #13 void std::__invoke_impl<void, void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x420acf7)
  282. #14 std::__invoke_result<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x42089bb)
  283. #15 void std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x42065e4)
  284. #16 void std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x420359c)
  285. #17 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) <null> (wesnoth-debug+0x41f9b33)
  286. #18 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)
  287. #19 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)
  288. #20 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)
  289. #21 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)
  290. #22 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)
  291. #23 gui2::event::sdl_event_handler::mouse_button_up(point const&, unsigned char) src/gui/core/event/handler.cpp:605 (wesnoth-debug+0x4211998)
  292. #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:369 (wesnoth-debug+0x420cf69)
  293. #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  294. #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  295. #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  296. #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  297. #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  298. #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  299. #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  300. #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  301. #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  302. #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  303. #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  304. #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  305.  
  306. As if synchronized via sleep:
  307. #0 nanosleep <null> (libtsan.so.0+0x49490)
  308. #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)
  309. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  310. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  311. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  312. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  313. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  314. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  315. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  316. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  317. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  318. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  319. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  320. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  321. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  322. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  323. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  324. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  325. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  326. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  327. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  328. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  329. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  330. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  331. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  332.  
  333. Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:
  334. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  335. #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)
  336. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)
  337. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  338. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  339. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  340. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  341. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  342. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  343. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  344. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  345. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  346. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  347. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  348. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  349. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  350. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  351. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  352. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  353. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  354. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  355. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  356. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  357. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  358. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  359.  
  360. Thread T11 (tid=17965, running) created by main thread at:
  361. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  362. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  363. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  364. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  365. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  366. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  367. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  368. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  369. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  370. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  371. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  372. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  373. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  374. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  375.  
  376. SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:607 in gui2::window::show(bool, unsigned int)
  377. ==================
  378. ==================
  379. WARNING: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) (pid=17519)
  380. Write of size 8 at 0x7b7000134810 by thread T11:
  381. #0 gui2::scrollbar_container::~scrollbar_container() src/gui/widgets/scrollbar_container.hpp:56 (wesnoth-debug+0x3a413a1)
  382. #1 gui2::scrollbar_panel::~scrollbar_panel() src/gui/widgets/scrollbar_panel.hpp:38 (wesnoth-debug+0x3b32bde)
  383. #2 gui2::scrollbar_panel::~scrollbar_panel() src/gui/widgets/scrollbar_panel.hpp:38 (wesnoth-debug+0x3b32c3d)
  384. #3 std::default_delete<gui2::widget>::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6db0d)
  385. #4 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::reset(gui2::widget*) /usr/include/c++/7/bits/unique_ptr.h:376 (wesnoth-debug+0x46c5b7e)
  386. #5 gui2::grid::child::set_widget(gui2::widget*) src/gui/widgets/grid.hpp:412 (wesnoth-debug+0x46c51eb)
  387. #6 gui2::grid::remove_child(unsigned int, unsigned int) src/gui/widgets/grid.cpp:145 (wesnoth-debug+0x46a75f8)
  388. #7 gui2::window::~window() src/gui/widgets/window.cpp:403 (wesnoth-debug+0x3c43764)
  389. #8 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  390. #9 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  391. #10 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  392. #11 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  393. #12 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  394. #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  395. #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  396. #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  397. #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  398. #17 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  399. #18 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  400. #19 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  401. #20 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  402. #21 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  403. #22 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  404. #23 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  405. #24 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  406. #25 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  407. #26 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  408. #27 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  409. #28 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  410. #29 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  411. #30 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  412. #31 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  413. #32 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  414. #33 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  415. #34 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  416.  
  417. Previous read of size 8 at 0x7b7000134810 by main thread:
  418. #0 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418db57)
  419. #1 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x4188ac6)
  420. #2 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)
  421. #3 gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::signal_handler_sdl_button_up(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:474 (wesnoth-debug+0x41e59b3)
  422. #4 void std::__invoke_impl<void, void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x420acf7)
  423. #5 std::__invoke_result<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x42089bb)
  424. #6 void std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x42065e4)
  425. #7 void std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x420359c)
  426. #8 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >::*(gui2::event::mouse_button<gui2::event::mouse_button_event_types_wrapper<(gui2::event::ui_event)8, (gui2::event::ui_event)9, (gui2::event::ui_event)10, (gui2::event::ui_event)11, (gui2::event::ui_event)12, (gui2::event::ui_event)13> >*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) <null> (wesnoth-debug+0x41f9b33)
  427. #9 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)
  428. #10 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)
  429. #11 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)
  430. #12 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)
  431. #13 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)
  432. #14 gui2::event::sdl_event_handler::mouse_button_up(point const&, unsigned char) src/gui/core/event/handler.cpp:605 (wesnoth-debug+0x4211998)
  433. #15 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:369 (wesnoth-debug+0x420cf69)
  434. #16 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  435. #17 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  436. #18 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  437. #19 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  438. #20 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  439. #21 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  440. #22 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  441. #23 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  442. #24 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  443. #25 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  444. #26 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  445. #27 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  446.  
  447. As if synchronized via sleep:
  448. #0 nanosleep <null> (libtsan.so.0+0x49490)
  449. #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)
  450. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  451. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  452. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  453. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  454. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  455. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  456. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  457. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  458. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  459. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  460. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  461. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  462. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  463. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  464. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  465. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  466. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  467. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  468. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  469. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  470. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  471. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  472. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  473.  
  474. Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:
  475. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  476. #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)
  477. #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)
  478. #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)
  479. #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)
  480. #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)
  481. #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  482. #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  483. #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  484. #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  485. #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  486. #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  487. #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  488. #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  489. #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  490. #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  491. #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  492. #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  493. #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  494. #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  495. #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  496. #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  497. #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  498. #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  499. #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  500. #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  501. #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  502. #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  503.  
  504. Thread T11 (tid=17965, running) created by main thread at:
  505. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  506. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  507. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  508. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  509. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  510. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  511. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  512. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  513. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  514. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  515. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  516. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  517. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  518. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  519.  
  520. SUMMARY: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) src/gui/widgets/scrollbar_container.hpp:56 in gui2::scrollbar_container::~scrollbar_container()
  521. ==================
  522. ==================
  523. WARNING: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) (pid=17519)
  524. Write of size 8 at 0x7b64000fa000 by thread T11:
  525. #0 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393ee8d)
  526. #1 gui2::label::~label() src/gui/widgets/label.hpp:32 (wesnoth-debug+0x3a1309c)
  527. #2 gui2::label::~label() src/gui/widgets/label.hpp:32 (wesnoth-debug+0x3a130fb)
  528. #3 std::default_delete<gui2::widget>::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6db0d)
  529. #4 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3c62d1f)
  530. #5 gui2::grid::child::~child() src/gui/widgets/grid.hpp:328 (wesnoth-debug+0x46cfa22)
  531. #6 void std::_Destroy<gui2::grid::child>(gui2::grid::child*) /usr/include/c++/7/bits/stl_construct.h:98 (wesnoth-debug+0x46cfa9b)
  532. #7 void std::_Destroy_aux<false>::__destroy<gui2::grid::child*>(gui2::grid::child*, gui2::grid::child*) <null> (wesnoth-debug+0x46cec9b)
  533. #8 void std::_Destroy<gui2::grid::child*>(gui2::grid::child*, gui2::grid::child*) <null> (wesnoth-debug+0x46cd6b4)
  534. #9 void std::_Destroy<gui2::grid::child*, gui2::grid::child>(gui2::grid::child*, gui2::grid::child*, std::allocator<gui2::grid::child>&) /usr/include/c++/7/bits/stl_construct.h:206 (wesnoth-debug+0x46ca195)
  535. #10 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::~vector() /usr/include/c++/7/bits/stl_vector.h:434 (wesnoth-debug+0x46c6524)
  536. #11 gui2::grid::~grid() src/gui/widgets/grid.cpp:54 (wesnoth-debug+0x46a57de)
  537. #12 gui2::grid::~grid() src/gui/widgets/grid.cpp:56 (wesnoth-debug+0x46a59f7)
  538. #13 std::default_delete<gui2::widget>::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6db0d)
  539. #14 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3c62d1f)
  540. #15 gui2::grid::child::~child() src/gui/widgets/grid.hpp:328 (wesnoth-debug+0x46cfa22)
  541. #16 void std::_Destroy<gui2::grid::child>(gui2::grid::child*) /usr/include/c++/7/bits/stl_construct.h:98 (wesnoth-debug+0x46cfa9b)
  542. #17 void std::_Destroy_aux<false>::__destroy<gui2::grid::child*>(gui2::grid::child*, gui2::grid::child*) <null> (wesnoth-debug+0x46cec9b)
  543. #18 void std::_Destroy<gui2::grid::child*>(gui2::grid::child*, gui2::grid::child*) <null> (wesnoth-debug+0x46cd6b4)
  544. #19 void std::_Destroy<gui2::grid::child*, gui2::grid::child>(gui2::grid::child*, gui2::grid::child*, std::allocator<gui2::grid::child>&) /usr/include/c++/7/bits/stl_construct.h:206 (wesnoth-debug+0x46ca195)
  545. #20 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::~vector() /usr/include/c++/7/bits/stl_vector.h:434 (wesnoth-debug+0x46c6524)
  546. #21 gui2::grid::~grid() src/gui/widgets/grid.cpp:54 (wesnoth-debug+0x46a57de)
  547. #22 gui2::grid::~grid() src/gui/widgets/grid.cpp:56 (wesnoth-debug+0x46a59f7)
  548. #23 std::default_delete<gui2::grid>::operator()(gui2::grid*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3a49075)
  549. #24 std::unique_ptr<gui2::grid, std::default_delete<gui2::grid> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3a431af)
  550. #25 gui2::scrollbar_container::~scrollbar_container() src/gui/widgets/scrollbar_container.hpp:56 (wesnoth-debug+0x3a413de)
  551. #26 gui2::scrollbar_panel::~scrollbar_panel() src/gui/widgets/scrollbar_panel.hpp:38 (wesnoth-debug+0x3b32bde)
  552. #27 gui2::scrollbar_panel::~scrollbar_panel() src/gui/widgets/scrollbar_panel.hpp:38 (wesnoth-debug+0x3b32c3d)
  553. #28 std::default_delete<gui2::widget>::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6db0d)
  554. #29 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::reset(gui2::widget*) /usr/include/c++/7/bits/unique_ptr.h:376 (wesnoth-debug+0x46c5b7e)
  555. #30 gui2::grid::child::set_widget(gui2::widget*) src/gui/widgets/grid.hpp:412 (wesnoth-debug+0x46c51eb)
  556. #31 gui2::grid::remove_child(unsigned int, unsigned int) src/gui/widgets/grid.cpp:145 (wesnoth-debug+0x46a75f8)
  557. #32 gui2::window::~window() src/gui/widgets/window.cpp:403 (wesnoth-debug+0x3c43764)
  558. #33 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  559. #34 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  560. #35 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  561. #36 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  562. #37 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  563. #38 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  564. #39 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  565. #40 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  566. #41 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  567. #42 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  568. #43 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  569. #44 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  570. #45 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  571. #46 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  572. #47 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  573. #48 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  574. #49 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  575. #50 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  576. #51 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  577. #52 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  578. #53 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  579. #54 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  580. #55 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  581. #56 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  582. #57 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  583. #58 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  584. #59 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  585.  
  586. Previous read of size 8 at 0x7b64000fa000 by main thread:
  587. #0 gui2::grid::layout_children() src/gui/widgets/grid.cpp:623 (wesnoth-debug+0x46b6911)
  588. #1 gui2::grid::layout_children() src/gui/widgets/grid.cpp:623 (wesnoth-debug+0x46b6a05)
  589. #2 gui2::scrollbar_container::layout_children() src/gui/widgets/scrollbar_container.cpp:804 (wesnoth-debug+0x4723220)
  590. #3 gui2::grid::layout_children() src/gui/widgets/grid.cpp:623 (wesnoth-debug+0x46b6a05)
  591. #4 gui2::container_base::layout_children() src/gui/widgets/container_base.cpp:209 (wesnoth-debug+0x43919dc)
  592. #5 gui2::window::draw() src/gui/widgets/window.cpp:650 (wesnoth-debug+0x3c48312)
  593. #6 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)
  594. #7 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)
  595. #8 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)
  596. #9 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)
  597. #10 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)
  598. #11 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)
  599. #12 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)
  600. #13 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)
  601. #14 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)
  602. #15 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)
  603. #16 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)
  604. #17 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  605. #18 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  606. #19 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  607. #20 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  608. #21 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  609. #22 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  610. #23 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  611. #24 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  612. #25 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  613. #26 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  614. #27 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  615. #28 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  616.  
  617. As if synchronized via sleep:
  618. #0 nanosleep <null> (libtsan.so.0+0x49490)
  619. #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)
  620. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)
  621. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  622. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  623. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  624. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  625. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  626. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  627. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  628. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  629. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  630. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  631. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  632. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  633. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  634. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  635. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  636. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  637. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  638. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  639. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  640. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  641. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  642. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  643.  
  644. Location is heap block of size 1040 at 0x7b64000fa000 allocated by thread T11:
  645. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  646. #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)
  647. #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)
  648. #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)
  649. #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)
  650. #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)
  651. #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)
  652. #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  653. #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  654. #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  655. #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  656. #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  657. #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  658. #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  659. #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  660. #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  661. #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  662. #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  663. #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  664. #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  665. #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  666. #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  667. #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  668. #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  669. #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  670. #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  671. #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  672. #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  673. #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  674.  
  675. Thread T11 (tid=17965, running) created by main thread at:
  676. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  677. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  678. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  679. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  680. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  681. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  682. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  683. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  684. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  685. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  686. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  687. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  688. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  689. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  690.  
  691. SUMMARY: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) src/gui/widgets/styled_widget.hpp:34 in gui2::styled_widget::~styled_widget()
  692. ==================
  693. ==================
  694. WARNING: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) (pid=17519)
  695. Write of size 8 at 0x7b74000e9200 by thread T11:
  696. #0 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef13b)
  697. #1 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  698. #2 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  699. #3 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  700. #4 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  701. #5 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  702. #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  703. #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  704. #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  705. #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  706. #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  707. #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  708. #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  709. #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  710. #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  711. #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  712. #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  713. #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  714. #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  715. #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  716. #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  717. #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  718. #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  719. #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  720. #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  721. #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  722. #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  723. #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  724. #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  725.  
  726. Previous read of size 8 at 0x7b74000e9200 by main thread:
  727. #0 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c91688)
  728. #1 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)
  729. #2 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)
  730. #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)
  731. #4 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)
  732. #5 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)
  733. #6 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)
  734. #7 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)
  735. #8 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)
  736. #9 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)
  737. #10 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)
  738. #11 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  739. #12 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  740. #13 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  741. #14 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  742. #15 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  743. #16 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  744. #17 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  745. #18 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  746. #19 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  747. #20 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  748. #21 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  749. #22 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  750.  
  751. Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:
  752. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  753. #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)
  754. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)
  755. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  756. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  757. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  758. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  759. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  760. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  761. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  762. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  763. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  764. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  765. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  766. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  767. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  768. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  769. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  770. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  771. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  772. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  773. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  774. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  775. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  776. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  777.  
  778. Thread T11 (tid=17965, running) created by main thread at:
  779. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  780. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  781. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  782. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  783. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  784. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  785. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  786. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  787. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  788. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  789. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  790. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  791. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  792. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  793.  
  794. SUMMARY: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) src/gui/widgets/panel.hpp:37 in gui2::panel::~panel()
  795. ==================
  796. ==================
  797. WARNING: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) (pid=17519)
  798. Write of size 8 at 0x7b74000e9210 by thread T11:
  799. #0 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef181)
  800. #1 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  801. #2 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  802. #3 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  803. #4 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  804. #5 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  805. #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  806. #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  807. #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  808. #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  809. #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  810. #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  811. #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  812. #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  813. #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  814. #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  815. #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  816. #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  817. #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  818. #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  819. #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  820. #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  821. #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  822. #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  823. #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  824. #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  825. #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  826. #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  827. #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  828.  
  829. Previous read of size 8 at 0x7b74000e9210 by main thread:
  830. #0 gui2::event::sdl_event_handler::raw_event(SDL_Event const&) src/gui/core/event/handler.cpp:571 (wesnoth-debug+0x4210854)
  831. #1 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:469 (wesnoth-debug+0x420e61b)
  832. #2 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  833. #3 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  834. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  835. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  836. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  837. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  838. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  839. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  840. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  841. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  842. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  843. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  844.  
  845. Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:
  846. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  847. #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)
  848. #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)
  849. #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  850. #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  851. #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  852. #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  853. #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  854. #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  855. #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  856. #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  857. #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  858. #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  859. #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  860. #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  861. #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  862. #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  863. #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  864. #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  865. #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  866. #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  867. #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  868. #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  869. #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  870. #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  871.  
  872. Thread T11 (tid=17965, running) created by main thread at:
  873. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  874. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  875. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  876. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  877. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  878. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  879. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  880. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  881. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  882. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  883. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  884. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  885. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  886. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  887.  
  888. SUMMARY: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) src/gui/widgets/panel.hpp:37 in gui2::panel::~panel()
  889. ==================
  890. ==================
  891. WARNING: ThreadSanitizer: data race (pid=17519)
  892. Write of size 1 at 0x7b7400082c38 by thread T11:
  893. #0 gui2::widget::set_is_dirty(bool) src/gui/widgets/widget.cpp:465 (wesnoth-debug+0x47cdcec)
  894. #1 gui2::event::sdl_event_handler::disconnect(gui2::event::dispatcher*) src/gui/core/event/handler.cpp:509 (wesnoth-debug+0x420f34d)
  895. #2 gui2::event::disconnect_dispatcher(gui2::event::dispatcher*) src/gui/core/event/handler.cpp:823 (wesnoth-debug+0x4214f47)
  896. #3 gui2::event::dispatcher::~dispatcher() src/gui/core/event/dispatcher.cpp:44 (wesnoth-debug+0x4181d02)
  897. #4 gui2::widget::~widget() src/gui/widgets/widget.cpp:74 (wesnoth-debug+0x47c6823)
  898. #5 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393f133)
  899. #6 gui2::container_base::~container_base() <null> (wesnoth-debug+0x393f420)
  900. #7 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef26e)
  901. #8 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  902. #9 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  903. #10 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  904. #11 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  905. #12 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  906. #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  907. #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  908. #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  909. #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  910. #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  911. #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  912. #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  913. #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  914. #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  915. #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  916. #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  917. #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  918. #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  919. #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  920. #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  921. #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  922. #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  923. #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  924. #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  925. #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  926. #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  927. #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  928. #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  929.  
  930. Previous read of size 1 at 0x7b7400082c38 by main thread:
  931. #0 gui2::widget::populate_dirty_list(gui2::window&, std::vector<gui2::widget*, std::allocator<gui2::widget*> >&) src/gui/widgets/widget.cpp:428 (wesnoth-debug+0x47ccdaa)
  932. #1 gui2::window::draw() src/gui/widgets/window.cpp:655 (wesnoth-debug+0x3c4847e)
  933. #2 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)
  934. #3 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)
  935. #4 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)
  936. #5 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)
  937. #6 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)
  938. #7 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)
  939. #8 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)
  940. #9 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)
  941. #10 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)
  942. #11 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)
  943. #12 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)
  944. #13 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  945. #14 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  946. #15 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  947. #16 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  948. #17 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  949. #18 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  950. #19 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  951. #20 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  952. #21 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  953. #22 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  954. #23 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  955. #24 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  956.  
  957. Location is heap block of size 2496 at 0x7b7400082a00 allocated by main thread:
  958. #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)
  959. #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)
  960. #2 gui2::build(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/core/window_builder.cpp:86 (wesnoth-debug+0x422fc08)
  961. #3 gui2::dialogs::modal_dialog::build_window() const src/gui/dialogs/modal_dialog.cpp:221 (wesnoth-debug+0x42a3b06)
  962. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:76 (wesnoth-debug+0x42a1be1)
  963. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  964. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  965. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  966. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  967. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  968. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  969. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  970. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  971. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  972.  
  973. Thread T11 (tid=17965, running) created by main thread at:
  974. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  975. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  976. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  977. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  978. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  979. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  980. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  981. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  982. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  983. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  984. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  985. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  986. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  987. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  988.  
  989. SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:465 in gui2::widget::set_is_dirty(bool)
  990. ==================
  991. ==================
  992. WARNING: ThreadSanitizer: data race (pid=17519)
  993. Write of size 8 at 0x7b1c00aeaf90 by thread T11:
  994. #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)
  995. #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::deallocate(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x41ab53f)
  996. #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >&, std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x41a662e)
  997. #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_put_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x41a0b2a)
  998. #4 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x4197dd1)
  999. #5 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_erase(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:1858 (wesnoth-debug+0x418b6f6)
  1000. #6 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::~_Rb_tree() /usr/include/c++/7/bits/stl_tree.h:949 (wesnoth-debug+0x418697a)
  1001. #7 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::~map() /usr/include/c++/7/bits/stl_map.h:294 (wesnoth-debug+0x41844a2)
  1002. #8 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >::~signal_queue() src/gui/core/event/dispatcher.hpp:705 (wesnoth-debug+0x418451c)
  1003. #9 gui2::event::dispatcher::~dispatcher() src/gui/core/event/dispatcher.cpp:41 (wesnoth-debug+0x4181da1)
  1004. #10 gui2::widget::~widget() src/gui/widgets/widget.cpp:74 (wesnoth-debug+0x47c6823)
  1005. #11 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393f133)
  1006. #12 gui2::container_base::~container_base() <null> (wesnoth-debug+0x393f420)
  1007. #13 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef26e)
  1008. #14 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  1009. #15 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  1010. #16 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  1011. #17 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  1012. #18 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  1013. #19 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  1014. #20 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  1015. #21 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  1016. #22 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  1017. #23 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  1018. #24 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  1019. #25 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  1020. #26 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  1021. #27 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  1022. #28 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  1023. #29 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  1024. #30 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  1025. #31 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  1026. #32 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  1027. #33 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  1028. #34 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  1029. #35 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  1030. #36 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  1031. #37 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  1032. #38 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  1033. #39 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  1034. #40 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  1035. #41 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  1036.  
  1037. Previous read of size 8 at 0x7b1c00aeaf90 by main thread:
  1038. #0 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_S_left(std::_Rb_tree_node_base*) /usr/include/c++/7/bits/stl_tree.h:764 (wesnoth-debug+0x4197d2d)
  1039. #1 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, std::_Rb_tree_node_base*, gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1873 (wesnoth-debug+0x41b3569)
  1040. #2 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1187 (wesnoth-debug+0x41adc52)
  1041. #3 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:1234 (wesnoth-debug+0x41a96ba)
  1042. #4 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:489 (wesnoth-debug+0x41a42b8)
  1043. #5 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<46> >::value, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >::type& gui2::event::dispatcher_implementation::event_signal<mpl_::int_<46> >(gui2::event::dispatcher&, gui2::event::ui_event) <null> (wesnoth-debug+0x41a3bea)
  1044. #6 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<46> >(gui2::event::ui_event) <null> (wesnoth-debug+0x419a835)
  1045. #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<46>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<46>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418c4c5)
  1046. #8 bool gui2::event::find<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x41872e7)
  1047. #9 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:92 (wesnoth-debug+0x4182515)
  1048. #10 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x4190375)
  1049. #11 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)>, SDL_Event const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, SDL_Event const&) <null> (wesnoth-debug+0x4188f24)
  1050. #12 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, SDL_Event const&) src/gui/core/event/dispatcher.cpp:160 (wesnoth-debug+0x4182828)
  1051. #13 gui2::event::sdl_event_handler::raw_event(SDL_Event const&) src/gui/core/event/handler.cpp:571 (wesnoth-debug+0x4210965)
  1052. #14 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:469 (wesnoth-debug+0x420e61b)
  1053. #15 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  1054. #16 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  1055. #17 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  1056. #18 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1057. #19 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1058. #20 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1059. #21 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1060. #22 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1061. #23 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1062. #24 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1063. #25 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1064. #26 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1065.  
  1066. Thread T11 (tid=17965, running) created by main thread at:
  1067. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  1068. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  1069. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  1070. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  1071. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  1072. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1073. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1074. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1075. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1076. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1077. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1078. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1079. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1080. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1081.  
  1082. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)
  1083. ==================
  1084. ==================
  1085. WARNING: ThreadSanitizer: data race (pid=17519)
  1086. Write of size 8 at 0x7b1c00aeafa0 by thread T11:
  1087. #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)
  1088. #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::deallocate(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x41ab53f)
  1089. #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >&, std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x41a662e)
  1090. #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_put_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x41a0b2a)
  1091. #4 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x4197dd1)
  1092. #5 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_erase(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:1858 (wesnoth-debug+0x418b6f6)
  1093. #6 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::~_Rb_tree() /usr/include/c++/7/bits/stl_tree.h:949 (wesnoth-debug+0x418697a)
  1094. #7 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::~map() /usr/include/c++/7/bits/stl_map.h:294 (wesnoth-debug+0x41844a2)
  1095. #8 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >::~signal_queue() src/gui/core/event/dispatcher.hpp:705 (wesnoth-debug+0x418451c)
  1096. #9 gui2::event::dispatcher::~dispatcher() src/gui/core/event/dispatcher.cpp:41 (wesnoth-debug+0x4181da1)
  1097. #10 gui2::widget::~widget() src/gui/widgets/widget.cpp:74 (wesnoth-debug+0x47c6823)
  1098. #11 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393f133)
  1099. #12 gui2::container_base::~container_base() <null> (wesnoth-debug+0x393f420)
  1100. #13 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef26e)
  1101. #14 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  1102. #15 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  1103. #16 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  1104. #17 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  1105. #18 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  1106. #19 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  1107. #20 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  1108. #21 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  1109. #22 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  1110. #23 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  1111. #24 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  1112. #25 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  1113. #26 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  1114. #27 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  1115. #28 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  1116. #29 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  1117. #30 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  1118. #31 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  1119. #32 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  1120. #33 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  1121. #34 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  1122. #35 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  1123. #36 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  1124. #37 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  1125. #38 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  1126. #39 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  1127. #40 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  1128. #41 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  1129.  
  1130. Previous read of size 4 at 0x7b1c00aeafa0 by main thread:
  1131. #0 std::less<gui2::event::ui_event>::operator()(gui2::event::ui_event const&, gui2::event::ui_event const&) const /usr/include/c++/7/bits/stl_function.h:386 (wesnoth-debug+0x3979847)
  1132. #1 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, std::_Rb_tree_node_base*, gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1872 (wesnoth-debug+0x41b354e)
  1133. #2 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1187 (wesnoth-debug+0x41adc52)
  1134. #3 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:1234 (wesnoth-debug+0x41a96ba)
  1135. #4 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:489 (wesnoth-debug+0x41a42b8)
  1136. #5 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<46> >::value, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >::type& gui2::event::dispatcher_implementation::event_signal<mpl_::int_<46> >(gui2::event::dispatcher&, gui2::event::ui_event) <null> (wesnoth-debug+0x41a3bea)
  1137. #6 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<46> >(gui2::event::ui_event) <null> (wesnoth-debug+0x419a835)
  1138. #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<46>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<46>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418c4c5)
  1139. #8 bool gui2::event::find<boost::mpl::set<mpl_::int_<46>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x41872e7)
  1140. #9 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:92 (wesnoth-debug+0x4182515)
  1141. #10 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x4190375)
  1142. #11 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)>, SDL_Event const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, SDL_Event const&) <null> (wesnoth-debug+0x4188f24)
  1143. #12 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, SDL_Event const&) src/gui/core/event/dispatcher.cpp:160 (wesnoth-debug+0x4182828)
  1144. #13 gui2::event::sdl_event_handler::raw_event(SDL_Event const&) src/gui/core/event/handler.cpp:571 (wesnoth-debug+0x4210965)
  1145. #14 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:469 (wesnoth-debug+0x420e61b)
  1146. #15 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)
  1147. #16 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)
  1148. #17 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  1149. #18 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1150. #19 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1151. #20 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1152. #21 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1153. #22 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1154. #23 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1155. #24 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1156. #25 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1157. #26 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1158.  
  1159. Thread T11 (tid=17965, running) created by main thread at:
  1160. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  1161. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  1162. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  1163. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  1164. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  1165. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1166. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1167. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1168. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1169. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1170. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1171. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1172. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1173. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1174.  
  1175. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)
  1176. ==================
  1177. ==================
  1178. WARNING: ThreadSanitizer: data race (pid=17519)
  1179. Write of size 8 at 0x7b1c00aeafa8 by thread T11:
  1180. #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)
  1181. #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::deallocate(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x41ab53f)
  1182. #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >&, std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x41a662e)
  1183. #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_put_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x41a0b2a)
  1184. #4 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x4197dd1)
  1185. #5 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::_M_erase(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:1858 (wesnoth-debug+0x418b6f6)
  1186. #6 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::~_Rb_tree() /usr/include/c++/7/bits/stl_tree.h:949 (wesnoth-debug+0x418697a)
  1187. #7 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> > > > >::~map() /usr/include/c++/7/bits/stl_map.h:294 (wesnoth-debug+0x41844a2)
  1188. #8 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, SDL_Event const&)> >::~signal_queue() src/gui/core/event/dispatcher.hpp:705 (wesnoth-debug+0x418451c)
  1189. #9 gui2::event::dispatcher::~dispatcher() src/gui/core/event/dispatcher.cpp:41 (wesnoth-debug+0x4181da1)
  1190. #10 gui2::widget::~widget() src/gui/widgets/widget.cpp:74 (wesnoth-debug+0x47c6823)
  1191. #11 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393f133)
  1192. #12 gui2::container_base::~container_base() <null> (wesnoth-debug+0x393f420)
  1193. #13 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef26e)
  1194. #14 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  1195. #15 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  1196. #16 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  1197. #17 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  1198. #18 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  1199. #19 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  1200. #20 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  1201. #21 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  1202. #22 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  1203. #23 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  1204. #24 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  1205. #25 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  1206. #26 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  1207. #27 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  1208. #28 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  1209. #29 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  1210. #30 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  1211. #31 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  1212. #32 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  1213. #33 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  1214. #34 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  1215. #35 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  1216. #36 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  1217. #37 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  1218. #38 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  1219. #39 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  1220. #40 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  1221. #41 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  1222.  
  1223. Previous read of size 8 at 0x7b1c00aeafa8 by main thread:
  1224. [failed to restore the stack]
  1225.  
  1226. Thread T11 (tid=17965, running) created by main thread at:
  1227. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  1228. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  1229. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  1230. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  1231. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  1232. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1233. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1234. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1235. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1236. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1237. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1238. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1239. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1240. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1241.  
  1242. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)
  1243. ==================
  1244. ==================
  1245. WARNING: ThreadSanitizer: data race (pid=17519)
  1246. Write of size 8 at 0x7b1c01e97020 by thread T11:
  1247. #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)
  1248. #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::deallocate(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x3981221)
  1249. #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x397fc12)
  1250. #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_put_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x397e8ca)
  1251. #4 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x397bbbb)
  1252. #5 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_erase(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:1858 (wesnoth-debug+0x418ae14)
  1253. #6 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::~_Rb_tree() /usr/include/c++/7/bits/stl_tree.h:949 (wesnoth-debug+0x418508a)
  1254. #7 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::~map() /usr/include/c++/7/bits/stl_map.h:294 (wesnoth-debug+0x4183eea)
  1255. #8 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::~signal_queue() src/gui/core/event/dispatcher.hpp:705 (wesnoth-debug+0x4183f64)
  1256. #9 gui2::event::dispatcher::~dispatcher() src/gui/core/event/dispatcher.cpp:41 (wesnoth-debug+0x4181ed6)
  1257. #10 gui2::widget::~widget() src/gui/widgets/widget.cpp:74 (wesnoth-debug+0x47c6823)
  1258. #11 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393f133)
  1259. #12 gui2::container_base::~container_base() <null> (wesnoth-debug+0x393f420)
  1260. #13 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef26e)
  1261. #14 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  1262. #15 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  1263. #16 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  1264. #17 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  1265. #18 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  1266. #19 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  1267. #20 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  1268. #21 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  1269. #22 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  1270. #23 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  1271. #24 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  1272. #25 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  1273. #26 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  1274. #27 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  1275. #28 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  1276. #29 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  1277. #30 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  1278. #31 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  1279. #32 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  1280. #33 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  1281. #34 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  1282. #35 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  1283. #36 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  1284. #37 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  1285. #38 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  1286. #39 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  1287. #40 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  1288. #41 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  1289.  
  1290. Previous read of size 8 at 0x7b1c01e97020 by main thread:
  1291. [failed to restore the stack]
  1292.  
  1293. Thread T11 (tid=17965, running) created by main thread at:
  1294. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  1295. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  1296. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  1297. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  1298. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  1299. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1300. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1301. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1302. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1303. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1304. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1305. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1306. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1307. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1308.  
  1309. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)
  1310. ==================
  1311. ==================
  1312. WARNING: ThreadSanitizer: data race (pid=17519)
  1313. Write of size 8 at 0x7b0c002ce650 by thread T11:
  1314. #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)
  1315. #1 __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::deallocate(std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x39812eb)
  1316. #2 std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::deallocate(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x397fceb)
  1317. #3 std::__cxx11::_List_base<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_put_node(std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >*) /usr/include/c++/7/bits/stl_list.h:387 (wesnoth-debug+0x398226e)
  1318. #4 std::__cxx11::_List_base<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_clear() /usr/include/c++/7/bits/list.tcc:80 (wesnoth-debug+0x3982123)
  1319. #5 std::__cxx11::_List_base<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::~_List_base() /usr/include/c++/7/bits/stl_list.h:442 (wesnoth-debug+0x3981aa5)
  1320. #6 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::~list() /usr/include/c++/7/bits/stl_list.h:733 (wesnoth-debug+0x398100e)
  1321. #7 gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::~signal_type() src/gui/core/event/dispatcher.hpp:692 (wesnoth-debug+0x39810be)
  1322. #8 std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::~pair() /usr/include/c++/7/bits/stl_pair.h:198 (wesnoth-debug+0x398116a)
  1323. #9 void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::destroy<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >(std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >*) /usr/include/c++/7/ext/new_allocator.h:140 (wesnoth-debug+0x39811e8)
  1324. #10 void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::destroy<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >*) /usr/include/c++/7/bits/alloc_traits.h:487 (wesnoth-debug+0x397fbbb)
  1325. #11 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:650 (wesnoth-debug+0x397e840)
  1326. #12 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:658 (wesnoth-debug+0x397bb83)
  1327. #13 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_erase(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*) /usr/include/c++/7/bits/stl_tree.h:1858 (wesnoth-debug+0x418ae14)
  1328. #14 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::~_Rb_tree() /usr/include/c++/7/bits/stl_tree.h:949 (wesnoth-debug+0x418508a)
  1329. #15 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::~map() /usr/include/c++/7/bits/stl_map.h:294 (wesnoth-debug+0x4183eea)
  1330. #16 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::~signal_queue() src/gui/core/event/dispatcher.hpp:705 (wesnoth-debug+0x4183f64)
  1331. #17 gui2::event::dispatcher::~dispatcher() src/gui/core/event/dispatcher.cpp:41 (wesnoth-debug+0x4181ed6)
  1332. #18 gui2::widget::~widget() src/gui/widgets/widget.cpp:74 (wesnoth-debug+0x47c6823)
  1333. #19 gui2::styled_widget::~styled_widget() src/gui/widgets/styled_widget.hpp:34 (wesnoth-debug+0x393f133)
  1334. #20 gui2::container_base::~container_base() <null> (wesnoth-debug+0x393f420)
  1335. #21 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aef26e)
  1336. #22 gui2::window::~window() src/gui/widgets/window.cpp:392 (wesnoth-debug+0x3c43e14)
  1337. #23 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c43e73)
  1338. #24 std::default_delete<gui2::window>::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42af87f)
  1339. #25 std::unique_ptr<gui2::window, std::default_delete<gui2::window> >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x42ac469)
  1340. #26 ~scoped_dialog src/scripting/lua_gui2.cpp:106 (wesnoth-debug+0x4a8dc73)
  1341. #27 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f994)
  1342. #28 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)
  1343. #29 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)
  1344. #30 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)
  1345. #31 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)
  1346. #32 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)
  1347. #33 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)
  1348. #34 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)
  1349. #35 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)
  1350. #36 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)
  1351. #37 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)
  1352. #38 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)
  1353. #39 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)
  1354. #40 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)
  1355. #41 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)
  1356. #42 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)
  1357. #43 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)
  1358. #44 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)
  1359. #45 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)
  1360. #46 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)
  1361. #47 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)
  1362. #48 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)
  1363. #49 <null> <null> (libboost_thread.so.1.62.0+0x11f95)
  1364.  
  1365. Previous read of size 8 at 0x7b0c002ce650 by main thread:
  1366. [failed to restore the stack]
  1367.  
  1368. Thread T11 (tid=17965, running) created by main thread at:
  1369. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  1370. #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)
  1371. #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)
  1372. #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)
  1373. #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)
  1374. #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1375. #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1376. #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1377. #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1378. #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1379. #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1380. #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1381. #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1382. #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1383.  
  1384. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)
  1385. ==================
  1386. 20180525 22:48:56 info wml: [IftU] COMPAT: Checking for add-on Damage_Distribution_Mod...
  1387. 20180525 22:48:56 info wml: [IftU] COMPAT: Checking for add-on No_Randomness_Mod...
  1388. 20180525 22:48:56 info wml: [IftU] COMPAT: Checking for add-on Move_Units_Between_Campaigns...
  1389. 20180525 22:48:56 info wml: [IftU] COMPAT: Add-on compatibility check finished!
  1390. ==================
  1391. WARNING: ThreadSanitizer: data race (pid=17519)
  1392. Write of size 8 at 0x7b14001c5f98 by main thread:
  1393. #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)
  1394. #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> > >::deallocate(std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x422b3f9)
  1395. #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> > >&, std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x422b13d)
  1396. #3 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x422ab68)
  1397. #4 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x4229741)
  1398. #5 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<unsigned long const, gui2::timer> >) /usr/include/c++/7/bits/stl_tree.h:2477 (wesnoth-debug+0x422a9ad)
  1399. #6 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<unsigned long const, gui2::timer> >) <null> (wesnoth-debug+0x42295cb)
  1400. #7 std::map<unsigned long, gui2::timer, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<unsigned long const, gui2::timer> >) <null> (wesnoth-debug+0x42289e3)
  1401. #8 gui2::remove_timer(unsigned long) src/gui/core/timer.cpp:170 (wesnoth-debug+0x4227a28)
  1402. #9 gui2::dialogs::loading_screen::clear_timer() src/gui/dialogs/loading_screen.cpp:233 (wesnoth-debug+0x4276c87)
  1403. #10 gui2::dialogs::loading_screen::post_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:138 (wesnoth-debug+0x4274750)
  1404. #11 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:108 (wesnoth-debug+0x42a2ced)
  1405. #12 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1406. #13 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1407. #14 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1408. #15 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1409. #16 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1410. #17 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1411. #18 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1412. #19 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1413. #20 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1414.  
  1415. Previous read of size 4 at 0x7b14001c5f9c by thread T1:
  1416. #0 timer_callback src/gui/core/timer.cpp:106 (wesnoth-debug+0x4226e69)
  1417. #1 <null> <null> (libSDL2-2.0.so.0+0x67fc8)
  1418.  
  1419. As if synchronized via sleep:
  1420. #0 nanosleep <null> (libtsan.so.0+0x49490)
  1421. #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)
  1422. #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)
  1423. #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)
  1424. #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)
  1425. #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)
  1426. #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)
  1427. #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)
  1428. #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)
  1429. #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)
  1430. #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)
  1431. #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)
  1432.  
  1433. Thread T1 'SDLTimer' (tid=17521, running) created by main thread at:
  1434. #0 pthread_create <null> (libtsan.so.0+0x2b6db)
  1435. #1 <null> <null> (libSDL2-2.0.so.0+0xd8e36)
  1436. #2 __libc_start_main <null> (libc.so.6+0x21a86)
  1437.  
  1438. SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)
  1439. ==================
Advertisement
Add Comment
Please, Sign In to add comment