================== WARNING: ThreadSanitizer: data race (pid=29308) Write of size 8 at 0x7b140059c0b8 by main thread: #0 operator delete(void*) (libtsan.so.0+0x6f3d1) #1 __gnu_cxx::new_allocator > >::deallocate(std::_Rb_tree_node >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x422bfc7) #2 std::allocator_traits > > >::deallocate(std::allocator > >&, std::_Rb_tree_node >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x422bd0b) #3 std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_put_node(std::_Rb_tree_node >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x422b736) #4 std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_drop_node(std::_Rb_tree_node >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x422a30f) #5 std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase_aux(std::_Rb_tree_const_iterator >) /usr/include/c++/7/bits/stl_tree.h:2477 (wesnoth-debug+0x422b57b) #6 std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::erase[abi:cxx11](std::_Rb_tree_iterator >) (wesnoth-debug+0x422a199) #7 std::map, std::allocator > >::erase[abi:cxx11](std::_Rb_tree_iterator >) (wesnoth-debug+0x42295b1) #8 gui2::remove_timer(unsigned long) src/gui/core/timer.cpp:170 (wesnoth-debug+0x42285f6) #9 gui2::text_box_base::toggle_cursor_timer(bool) src/gui/widgets/text_box_base.cpp:288 (wesnoth-debug+0x477bf90) #10 gui2::text_box_base::~text_box_base() src/gui/widgets/text_box_base.cpp:69 (wesnoth-debug+0x4776b22) #11 gui2::text_box::~text_box() src/gui/widgets/text_box.hpp:121 (wesnoth-debug+0x3af5a4a) #12 gui2::text_box::~text_box() src/gui/widgets/text_box.hpp:121 (wesnoth-debug+0x3af5aa9) #13 std::default_delete::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6e6db) #14 std::unique_ptr >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3c638ed) #15 gui2::grid::child::~child() (wesnoth-debug+0x46d05f0) #16 void std::_Destroy(gui2::grid::child*) (wesnoth-debug+0x46d0669) #17 void std::_Destroy_aux::__destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46cf869) #18 void std::_Destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46ce282) #19 void std::_Destroy(gui2::grid::child*, gui2::grid::child*, std::allocator&) (wesnoth-debug+0x46cad63) #20 std::vector >::~vector() /usr/include/c++/7/bits/stl_vector.h:434 (wesnoth-debug+0x46c70f2) #21 gui2::grid::~grid() src/gui/widgets/grid.cpp:54 (wesnoth-debug+0x46a63ac) #22 gui2::grid::~grid() src/gui/widgets/grid.cpp:56 (wesnoth-debug+0x46a65c5) #23 std::default_delete::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6e6db) #24 std::unique_ptr >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3c638ed) #25 gui2::grid::child::~child() (wesnoth-debug+0x46d05f0) #26 void std::_Destroy(gui2::grid::child*) (wesnoth-debug+0x46d0669) #27 void std::_Destroy_aux::__destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46cf869) #28 void std::_Destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46ce282) #29 void std::_Destroy(gui2::grid::child*, gui2::grid::child*, std::allocator&) (wesnoth-debug+0x46cad63) #30 std::vector >::~vector() /usr/include/c++/7/bits/stl_vector.h:434 (wesnoth-debug+0x46c70f2) #31 gui2::grid::~grid() src/gui/widgets/grid.cpp:54 (wesnoth-debug+0x46a63ac) #32 gui2::grid::~grid() src/gui/widgets/grid.cpp:56 (wesnoth-debug+0x46a65c5) #33 std::default_delete::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6e6db) #34 std::unique_ptr >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3c638ed) #35 gui2::grid::child::~child() (wesnoth-debug+0x46d05f0) #36 void std::_Destroy(gui2::grid::child*) (wesnoth-debug+0x46d0669) #37 void std::_Destroy_aux::__destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46cf869) #38 void std::_Destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46ce282) #39 void std::_Destroy(gui2::grid::child*, gui2::grid::child*, std::allocator&) (wesnoth-debug+0x46cad63) #40 std::vector >::~vector() /usr/include/c++/7/bits/stl_vector.h:434 (wesnoth-debug+0x46c70f2) #41 gui2::grid::~grid() src/gui/widgets/grid.cpp:54 (wesnoth-debug+0x46a63ac) #42 gui2::grid::~grid() src/gui/widgets/grid.cpp:56 (wesnoth-debug+0x46a65c5) #43 std::default_delete::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6e6db) #44 std::unique_ptr >::~unique_ptr() /usr/include/c++/7/bits/unique_ptr.h:268 (wesnoth-debug+0x3c638ed) #45 gui2::grid::child::~child() (wesnoth-debug+0x46d05f0) #46 void std::_Destroy(gui2::grid::child*) (wesnoth-debug+0x46d0669) #47 void std::_Destroy_aux::__destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46cf869) #48 void std::_Destroy(gui2::grid::child*, gui2::grid::child*) (wesnoth-debug+0x46ce282) #49 void std::_Destroy(gui2::grid::child*, gui2::grid::child*, std::allocator&) (wesnoth-debug+0x46cad63) #50 std::vector >::~vector() /usr/include/c++/7/bits/stl_vector.h:434 (wesnoth-debug+0x46c70f2) #51 gui2::grid::~grid() src/gui/widgets/grid.cpp:54 (wesnoth-debug+0x46a63ac) #52 gui2::container_base::~container_base() (wesnoth-debug+0x393ff09) #53 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aefe3c) #54 gui2::panel::~panel() src/gui/widgets/panel.hpp:37 (wesnoth-debug+0x3aefe9b) #55 std::default_delete::operator()(gui2::widget*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x3c6e6db) #56 std::unique_ptr >::reset(gui2::widget*) /usr/include/c++/7/bits/unique_ptr.h:376 (wesnoth-debug+0x46c674c) #57 gui2::grid::child::set_widget(gui2::widget*) src/gui/widgets/grid.hpp:412 (wesnoth-debug+0x46c5db9) #58 gui2::grid::remove_child(unsigned int, unsigned int) src/gui/widgets/grid.cpp:145 (wesnoth-debug+0x46a81c6) #59 gui2::window::~window() src/gui/widgets/window.cpp:403 (wesnoth-debug+0x3c44332) #60 gui2::window::~window() src/gui/widgets/window.cpp:425 (wesnoth-debug+0x3c44a41) #61 std::default_delete::operator()(gui2::window*) const /usr/include/c++/7/bits/unique_ptr.h:78 (wesnoth-debug+0x42b044d) #62 std::unique_ptr >::reset(gui2::window*) /usr/include/c++/7/bits/unique_ptr.h:376 (wesnoth-debug+0x42ad478) #63 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:114 (wesnoth-debug+0x42a3b2a) #64 gui2::dialogs::show_wml_message(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, gui2::dialogs::wml_message_portrait const*, gui2::dialogs::wml_message_portrait const*, gui2::dialogs::wml_message_options const&, gui2::dialogs::wml_message_input const&) src/gui/dialogs/wml_message.cpp:188 (wesnoth-debug+0x59714ef) #65 lua_gui2::show_message_dialog(lua_State*) src/scripting/lua_gui2.cpp:353 (wesnoth-debug+0x4a91bf3) #66 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b6186) #67 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x6204ef5) #68 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b6f0d) #69 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b7072) #70 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619ffe2) #71 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b2dc6) #72 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b8d87) #73 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x61a0211) #74 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a81ea4) #75 luaW_pcall(lua_State*, int, int, bool) src/scripting/lua_common.cpp:972 (wesnoth-debug+0x4a81f4b) #76 game_lua_kernel::run_wml_action(std::__cxx11::basic_string, std::allocator > const&, vconfig const&, game_events::queued_event const&) src/scripting/game_lua_kernel.cpp:4583 (wesnoth-debug+0x4a2d85c) #77 game_events::event_handler::handle_event(game_events::queued_event const&, game_lua_kernel&) src/game_events/handlers.cpp:73 (wesnoth-debug+0x5ead091) #78 game_events::wml_event_pump::process_event(std::shared_ptr&, game_events::queued_event const&) src/game_events/pump.cpp:304 (wesnoth-debug+0x5631e3e) #79 operator() src/game_events/pump.cpp:596 (wesnoth-debug+0x5636061) #80 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x56385f8) #81 std::function&)>::operator()(game_events::manager&, std::shared_ptr&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x5615715) #82 game_events::manager::execute_on_events(std::__cxx11::basic_string, std::allocator > const&, std::function&)>) src/game_events/manager.cpp:210 (wesnoth-debug+0x5613081) #83 game_events::wml_event_pump::operator()() src/game_events/pump.cpp:592 (wesnoth-debug+0x563779d) #84 game_events::wml_event_pump::fire(std::__cxx11::basic_string, std::allocator > const&, game_events::entity_location const&, game_events::entity_location const&, config const&) src/game_events/pump.cpp:495 (wesnoth-debug+0x56359cb) #85 play_controller::fire_start() src/play_controller.cpp:368 (wesnoth-debug+0x49064d2) #86 play_controller::start_game() src/play_controller.cpp:1093 (wesnoth-debug+0x491f9ad) #87 playsingle_controller::play_scenario_init() src/playsingle_controller.cpp:149 (wesnoth-debug+0x5a5ef04) #88 playsingle_controller::play_scenario(config const&) src/playsingle_controller.cpp:258 (wesnoth-debug+0x5a61adb) #89 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:194 (wesnoth-debug+0x56774aa) #90 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x5678a70) #91 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f6333) #92 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4dcf) #93 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca5b33) Previous read of size 4 at 0x7b140059c0bc by thread T1: #0 timer_callback src/gui/core/timer.cpp:106 (wesnoth-debug+0x4227a37) #1 (libSDL2-2.0.so.0+0x67fc8) As if synchronized via sleep: #0 nanosleep (libtsan.so.0+0x49490) #1 (libSDL2-2.0.so.0+0xdd914) #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a3237) #3 gui2::dialogs::show_wml_message(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, gui2::dialogs::wml_message_portrait const*, gui2::dialogs::wml_message_portrait const*, gui2::dialogs::wml_message_options const&, gui2::dialogs::wml_message_input const&) src/gui/dialogs/wml_message.cpp:188 (wesnoth-debug+0x59714ef) #4 lua_gui2::show_message_dialog(lua_State*) src/scripting/lua_gui2.cpp:353 (wesnoth-debug+0x4a91bf3) #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b6186) #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x6204ef5) #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b6f0d) #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b7072) #9 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619ffe2) #10 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b2dc6) #11 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b8d87) #12 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x61a0211) #13 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a81ea4) #14 luaW_pcall(lua_State*, int, int, bool) src/scripting/lua_common.cpp:972 (wesnoth-debug+0x4a81f4b) #15 game_lua_kernel::run_wml_action(std::__cxx11::basic_string, std::allocator > const&, vconfig const&, game_events::queued_event const&) src/scripting/game_lua_kernel.cpp:4583 (wesnoth-debug+0x4a2d85c) #16 game_events::event_handler::handle_event(game_events::queued_event const&, game_lua_kernel&) src/game_events/handlers.cpp:73 (wesnoth-debug+0x5ead091) #17 game_events::wml_event_pump::process_event(std::shared_ptr&, game_events::queued_event const&) src/game_events/pump.cpp:304 (wesnoth-debug+0x5631e3e) #18 operator() src/game_events/pump.cpp:596 (wesnoth-debug+0x5636061) #19 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x56385f8) #20 std::function&)>::operator()(game_events::manager&, std::shared_ptr&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x5615715) #21 game_events::manager::execute_on_events(std::__cxx11::basic_string, std::allocator > const&, std::function&)>) src/game_events/manager.cpp:210 (wesnoth-debug+0x5613081) #22 game_events::wml_event_pump::operator()() src/game_events/pump.cpp:592 (wesnoth-debug+0x563779d) #23 game_events::wml_event_pump::fire(std::__cxx11::basic_string, std::allocator > const&, game_events::entity_location const&, game_events::entity_location const&, config const&) src/game_events/pump.cpp:495 (wesnoth-debug+0x56359cb) #24 play_controller::fire_start() src/play_controller.cpp:368 (wesnoth-debug+0x49064d2) #25 play_controller::start_game() src/play_controller.cpp:1093 (wesnoth-debug+0x491f9ad) #26 playsingle_controller::play_scenario_init() src/playsingle_controller.cpp:149 (wesnoth-debug+0x5a5ef04) #27 playsingle_controller::play_scenario(config const&) src/playsingle_controller.cpp:258 (wesnoth-debug+0x5a61adb) #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:194 (wesnoth-debug+0x56774aa) #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x5678a70) #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f6333) #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4dcf) #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca5b33) Thread T1 'SDLTimer' (tid=29310, running) created by main thread at: #0 pthread_create (libtsan.so.0+0x2b6db) #1 (libSDL2-2.0.so.0+0xd8e36) #2 __libc_start_main (libc.so.6+0x21a86) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*) ================== 20180527 00:56:42 info wml: Skipping [message] because user not interested 20180527 00:56:42 info wml: Skipping [message] because user not interested 20180527 00:56:42 info wml: Skipping [message] because user not interested 20180527 00:56:42 info wml: Skipping [message] because user not interested 20180527 00:56:42 info wml: Skipping [message] because user not interested 20180527 00:56:42 info wml: Skipping [message] because user not interested