Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 20:55:17 shadowm@nanacore ~/src/wesnoth % ./wesnoth-debug
- Battle for Wesnoth v1.13.4+dev (fe80448-Clean)
- Started on Thu Jun 16 21:10:16 2016
- Automatically found a possible data directory at /home/shadowm/src/wesnoth
- Data directory: /home/shadowm/src/wesnoth
- User configuration directory: /home/shadowm/.wesnoth-1.13
- User data directory: /home/shadowm/.wesnoth-1.13
- Cache directory: /home/shadowm/.wesnoth-1.13/cache
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Write of size 8 at 0x7d280000e9d8 by main thread:
- #0 recvmsg <null> (libtsan.so.0+0x00000003f9cc)
- #1 pa_iochannel_read_with_ancil_data <null> (libpulsecommon-8.0.so+0x0000000316db)
- #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c)
- #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
- #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d280000e9d8 by thread T2:
- #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
- #1 pa_srbchannel_read <null> (libpulsecommon-8.0.so+0x0000000447ae)
- Location is heap block of size 152 at 0x7d280000e9c0 allocated by main thread:
- #0 malloc <null> (libtsan.so.0+0x0000000268cc)
- #1 pa_xmalloc <null> (libpulse.so.0+0x000000039ad6)
- #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c)
- #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
- #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Thread T2 'PulseHotplug' (tid=24563, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
- #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c)
- #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
- #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Write of size 1 at 0x7d280000e9e6 by main thread:
- #0 recvmsg <null> (libtsan.so.0+0x00000003f9cc)
- #1 pa_iochannel_read_with_ancil_data <null> (libpulsecommon-8.0.so+0x0000000316db)
- #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c)
- #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
- #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous read of size 1 at 0x7d280000e9e6 by thread T2:
- #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
- #1 <null> <null> (libpulsecommon-8.0.so+0x00000004311a)
- Location is heap block of size 152 at 0x7d280000e9c0 allocated by main thread:
- #0 malloc <null> (libtsan.so.0+0x0000000268cc)
- #1 pa_xmalloc <null> (libpulse.so.0+0x000000039ad6)
- #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c)
- #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
- #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Thread T2 'PulseHotplug' (tid=24563, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
- #2 game_launcher::game_launcher(commandline_options const&, char const*) src/game_launcher.cpp:279 (wesnoth-debug+0x0000004ef05c)
- #3 do_gameloop src/wesnoth.cpp:586 (wesnoth-debug+0x00000042afef)
- #4 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f9cc) in recvmsg
- ==================
- Setting mode to 1178x800
- 20160616 21:10:35 warning gui/event: Unhandled event 4352.
- 20160616 21:10:35 warning gui/event: Unhandled event 4352.
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Write of size 8 at 0x7d1000004e70 by thread T4:
- #0 operator delete(void*) <null> (libtsan.so.0+0x000000065c49)
- #1 __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::deallocate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) /usr/include/c++/5/ext/new_allocator.h:110 (wesnoth-debug+0x000000441fdf)
- #2 std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::deallocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:517 (wesnoth-debug+0x00000043cd1f)
- #3 std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_deallocate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long) /usr/include/c++/5/bits/stl_vector.h:178 (wesnoth-debug+0x00000043720c)
- #4 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:438 (wesnoth-debug+0x000000475a16)
- #5 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb)
- #6 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf)
- #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
- #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
- #9 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
- #10 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
- #11 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
- #12 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
- #13 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427)
- #14 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f)
- #15 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
- #16 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
- #17 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
- #18 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
- #20 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
- #21 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
- #22 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #23 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #24 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #25 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #26 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Previous read of size 1 at 0x7d1000004e76 by main thread:
- [failed to restore the stack]
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x65c49) in operator delete(void*)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Write of size 8 at 0x000001fe0340 by thread T4:
- #0 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:441 (wesnoth-debug+0x000000475a22)
- #1 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb)
- #2 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf)
- #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
- #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
- #5 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
- #6 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
- #7 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
- #8 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
- #9 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427)
- #10 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f)
- #11 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
- #12 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
- #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
- #14 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #15 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
- #16 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
- #17 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
- #18 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #19 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #20 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #21 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #22 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Previous read of size 8 at 0x000001fe0340 by main thread:
- [failed to restore the stack]
- Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fe0340 (wesnoth-debug+0x000001fe0340)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/vector.tcc:441 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Write of size 8 at 0x000001fe0348 by thread T4:
- #0 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:442 (wesnoth-debug+0x000000475a3d)
- #1 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb)
- #2 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf)
- #3 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
- #4 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
- #5 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
- #6 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
- #7 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
- #8 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
- #9 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427)
- #10 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f)
- #11 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
- #12 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
- #13 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
- #14 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #15 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
- #16 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
- #17 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
- #18 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #19 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #20 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #21 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #22 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Previous read of size 8 at 0x000001fe0348 by main thread:
- [failed to restore the stack]
- Location is global '(anonymous namespace)::id_to_textdomain' of size 24 at 0x000001fe0340 (wesnoth-debug+0x000001fe0348)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/vector.tcc:442 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 8 at 0x7d2000098f10 by main thread:
- #0 memcpy <null> (libtsan.so.0+0x000000026ee1)
- #1 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (libstdc++.so.6+0x00000011cc92)
- #2 t_string_base::walker::walker(t_string_base const&) src/tstring.cpp:69 (wesnoth-debug+0x0000012b3291)
- #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:443 (wesnoth-debug+0x0000012b5785)
- #4 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #5 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #9 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #10 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #11 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #12 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #13 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d2000098f10 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 128 at 0x7d2000098f00 allocated by thread T4:
- #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
- #1 __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104 (wesnoth-debug+0x0000004463f8)
- #2 std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:491 (wesnoth-debug+0x00000044201c)
- #3 std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170 (wesnoth-debug+0x00000043cd6e)
- #4 void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:412 (wesnoth-debug+0x0000004758c9)
- #5 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923 (wesnoth-debug+0x000000474ebb)
- #6 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:200 (wesnoth-debug+0x0000012b42bf)
- #7 parse_variable src/serialization/parser.cpp:290 (wesnoth-debug+0x000001270ef2)
- #8 operator() src/serialization/parser.cpp:116 (wesnoth-debug+0x00000126ea35)
- #9 void read_compressed<boost::iostreams::basic_gzip_decompressor<std::allocator<char> > >(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:450 (wesnoth-debug+0x0000012775cd)
- #10 read_gz(config&, std::istream&, abstract_validator*) src/serialization/parser.cpp:456 (wesnoth-debug+0x000001271ebf)
- #11 game_config::config_cache::read_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:122 (wesnoth-debug+0x0000009dcd66)
- #12 game_config::config_cache::read_cache(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:205 (wesnoth-debug+0x0000009dd662)
- #13 game_config::config_cache::load_configs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:285 (wesnoth-debug+0x0000009de427)
- #14 game_config::config_cache::get_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config&) src/config_cache.cpp:91 (wesnoth-debug+0x0000009dca0f)
- #15 game_config_manager::load_game_config(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:256 (wesnoth-debug+0x0000004e2fee)
- #16 operator() src/game_config_manager.cpp:138 (wesnoth-debug+0x0000004e1d4f)
- #17 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x0000004e6d0b)
- #18 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:185 (wesnoth-debug+0x000000550ace)
- #20 game_config_manager::load_game_config_with_loadscreen(game_config_manager::FORCE_RELOAD_CONFIG, game_classification const*) src/game_config_manager.cpp:139 (wesnoth-debug+0x0000004e1f87)
- #21 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:91 (wesnoth-debug+0x0000004e192d)
- #22 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #23 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #24 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #25 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #26 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x26ee1) in __interceptor_memcpy
- ==================
- 20160616 21:10:36 warning general: no location found for 'data/add-ons/Era_of_Chaos/translations', skipping textdomain
- 20160616 21:10:36 warning general: no location found for 'data/add-ons/Orb_Test/translations', skipping textdomain
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 1 at 0x7d280000e870 by main thread:
- #0 get_locale src/gettext_boost.cpp:186 (wesnoth-debug+0x0000012de742)
- #1 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
- #2 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #3 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #4 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #5 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #6 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #7 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #8 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #9 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #10 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #11 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #12 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #13 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #14 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #15 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #16 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #17 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #18 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #19 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #20 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #21 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 1 at 0x7d280000e870 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 152 at 0x7d280000e7e0 allocated by main thread:
- #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
- #1 get_manager src/gettext_boost.cpp:204 (wesnoth-debug+0x0000012de7dc)
- #2 translation::bind_textdomain(char const*, char const*, char const*) src/gettext_boost.cpp:251 (wesnoth-debug+0x0000012dec2d)
- #3 init_locale src/wesnoth.cpp:479 (wesnoth-debug+0x00000042ab2d)
- #4 do_gameloop src/wesnoth.cpp:589 (wesnoth-debug+0x00000042b012)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race src/gettext_boost.cpp:186 in get_locale
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 8 at 0x7d0c00040988 by main thread:
- #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:107 (wesnoth-debug+0x0000012dfd3b)
- #1 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012dfb51)
- #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d0c00040988 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 40 at 0x7d0c00040980 allocated by thread T4:
- #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
- #1 std::locale::locale<boost::locale::util::simple_info>(std::locale const&, boost::locale::util::simple_info*) <null> (libboost_locale.so.1.60.0+0x00000007b0fc)
- #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
- #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
- #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781)
- #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681)
- #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02)
- #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb)
- #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b)
- #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771)
- #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2)
- #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624)
- #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f)
- #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
- #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
- #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
- #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
- #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:107 in bool std::has_facet<boost::locale::message_format<char> >(std::locale const&)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 8 at 0x7d0c00040990 by main thread:
- #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:108 (wesnoth-debug+0x0000012dfd62)
- #1 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012dfb51)
- #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d0c00040990 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 40 at 0x7d0c00040980 allocated by thread T4:
- #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
- #1 std::locale::locale<boost::locale::util::simple_info>(std::locale const&, boost::locale::util::simple_info*) <null> (libboost_locale.so.1.60.0+0x00000007b0fc)
- #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
- #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
- #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781)
- #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681)
- #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02)
- #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb)
- #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b)
- #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771)
- #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2)
- #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624)
- #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f)
- #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
- #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
- #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
- #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
- #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:108 in bool std::has_facet<boost::locale::message_format<char> >(std::locale const&)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 8 at 0x7d4c0001eb80 by main thread:
- #0 bool std::has_facet<boost::locale::message_format<char> >(std::locale const&) /usr/include/c++/5/bits/locale_classes.tcc:110 (wesnoth-debug+0x0000012dfd88)
- #1 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:373 (wesnoth-debug+0x0000012dfb51)
- #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d4c0001eb80 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 448 at 0x7d4c0001ea00 allocated by thread T4:
- #0 operator new[](unsigned long) <null> (libtsan.so.0+0x000000065a53)
- #1 std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) <null> (libstdc++.so.6+0x0000000a0934)
- #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
- #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
- #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781)
- #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681)
- #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02)
- #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb)
- #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b)
- #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771)
- #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2)
- #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624)
- #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f)
- #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
- #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
- #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
- #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
- #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race /usr/include/c++/5/bits/locale_classes.tcc:110 in bool std::has_facet<boost::locale::message_format<char> >(std::locale const&)
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 8 at 0x7d34000263d0 by main thread:
- #0 boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/boost/locale/message.hpp:374 (wesnoth-debug+0x0000012dfb6f)
- #1 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd)
- #2 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
- #3 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #4 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #5 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #6 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #7 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #8 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #9 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #10 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #11 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #13 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #14 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #15 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #16 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #17 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #18 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #19 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #20 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #21 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #22 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d34000263d0 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 208 at 0x7d34000263d0 allocated by thread T4:
- #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
- #1 boost::locale::message_format<char>* boost::locale::gnu_gettext::create_messages_facet<char>(boost::locale::gnu_gettext::messages_info const&) <null> (libboost_locale.so.1.60.0+0x0000000622b2)
- #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
- #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
- #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781)
- #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681)
- #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02)
- #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb)
- #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b)
- #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771)
- #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2)
- #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624)
- #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f)
- #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
- #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
- #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
- #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
- #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race /usr/include/boost/locale/message.hpp:374 in boost::locale::basic_message<char>::str(std::locale const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
- ==================
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Read of size 8 at 0x7d140003ca30 by main thread:
- #0 memcmp <null> (libtsan.so.0+0x00000003f327)
- #1 boost::locale::gnu_gettext::mo_message<char>::domain(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const <null> (libboost_locale.so.1.60.0+0x000000062d1b)
- #2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::locale::dgettext<char>(char const*, char const*, std::locale const&) /usr/include/boost/locale/message.hpp:641 (wesnoth-debug+0x0000012df7dd)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de89f)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:94 (wesnoth-debug+0x00000051b1ce)
- #7 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&[abi:cxx11]() const src/tstring.hpp:163 (wesnoth-debug+0x00000051b222)
- #8 gui2::tcontrol::update_canvas() src/gui/widgets/control.cpp:372 (wesnoth-debug+0x000000583f96)
- #9 gui2::tcontrol::set_label(t_string const&) src/gui/widgets/control.cpp:338 (wesnoth-debug+0x000000583cf9)
- #10 gui2::tloadscreen::timer_callback(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:167 (wesnoth-debug+0x00000055078f)
- #11 void std::_Mem_fn_base<void (gui2::tloadscreen::*)(gui2::twindow&), true>::operator()<gui2::twindow&, void>(gui2::tloadscreen*, gui2::twindow&) const /usr/include/c++/5/functional:600 (wesnoth-debug+0x00000055ed54)
- #12 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::__call<void, unsigned long&&, 0ul, 1ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/5/functional:1074 (wesnoth-debug+0x00000055deff)
- #13 void std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)>::operator()<unsigned long, void>(unsigned long&&) /usr/include/c++/5/functional:1133 (wesnoth-debug+0x00000055c4cc)
- #14 std::_Function_handler<void (unsigned long), std::_Bind<std::_Mem_fn<void (gui2::tloadscreen::*)(gui2::twindow&)> (gui2::tloadscreen*, std::reference_wrapper<gui2::twindow>)> >::_M_invoke(std::_Any_data const&, unsigned long&&) /usr/include/c++/5/functional:1871 (wesnoth-debug+0x000000559d9a)
- #15 std::function<void (unsigned long)>::operator()(unsigned long) const <null> (wesnoth-debug+0x000000518f4e)
- #16 gui2::execute_timer(unsigned long) src/gui/core/timer.cpp:187 (wesnoth-debug+0x0000005184a2)
- #17 gui2::event::thandler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:364 (wesnoth-debug+0x0000005130ed)
- #18 events::pump() src/events.cpp:529 (wesnoth-debug+0x00000132fdf5)
- #19 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:676 (wesnoth-debug+0x000000612897)
- #20 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #21 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #22 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #23 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous write of size 8 at 0x7d140003ca30 by thread T4:
- [failed to restore the stack]
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is heap block of size 72 at 0x7d140003ca00 allocated by thread T4:
- #0 operator new(unsigned long) <null> (libtsan.so.0+0x0000000659b3)
- #1 <null> <null> (libboost_locale.so.1.60.0+0x0000000621a1)
- #2 get_locale src/gettext_boost.cpp:188 (wesnoth-debug+0x0000012de75d)
- #3 translation::dgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:215 (wesnoth-debug+0x0000012de888)
- #4 translation::dsgettext[abi:cxx11](char const*, char const*) src/gettext_boost.cpp:224 (wesnoth-debug+0x0000012de9cf)
- #5 t_string_base::str[abi:cxx11]() const src/tstring.cpp:447 (wesnoth-debug+0x0000012b5836)
- #6 t_string::str[abi:cxx11]() const src/tstring.hpp:164 (wesnoth-debug+0x0000004ce61e)
- #7 config::attribute_value::string_visitor::operator()[abi:cxx11](t_string const&) const src/config.cpp:350 (wesnoth-debug+0x0000012101e4)
- #8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::internal_visit<t_string const>(t_string const&, int) /usr/include/boost/variant/variant.hpp:978 (wesnoth-debug+0x000001237781)
- #9 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, mpl_::bool_<true>) /usr/include/boost/variant/detail/visitation_impl.hpp:114 (wesnoth-debug+0x000001233681)
- #10 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, t_string, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, t_string*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, int) /usr/include/boost/variant/detail/visitation_impl.hpp:157 (wesnoth-debug+0x00000122ed02)
- #11 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::detail::variant::visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*, mpl_::bool_<false>, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::has_fallback_type_, mpl_::int_<0>*, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8l>, boost::blank, boost::mpl::l_item<mpl_::long_<7l>, config::attribute_value::true_false, boost::mpl::l_item<mpl_::long_<6l>, config::attribute_value::yes_no, boost::mpl::l_item<mpl_::long_<5l>, int, boost::mpl::l_item<mpl_::long_<4l>, unsigned long long, boost::mpl::l_item<mpl_::long_<3l>, double, boost::mpl::l_item<mpl_::long_<2l>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::mpl::l_item<mpl_::long_<1l>, t_string, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >*) /usr/include/boost/variant/detail/visitation_impl.hpp:238 (wesnoth-debug+0x0000012293bb)
- #12 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>, void const*>(int, int, boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&, void const*) /usr/include/boost/variant/variant.hpp:2326 (wesnoth-debug+0x00000122410b)
- #13 boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::internal_apply_visitor<boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const> >(boost::detail::variant::invoke_visitor<config::attribute_value::string_visitor const>&) const /usr/include/boost/variant/variant.hpp:2348 (wesnoth-debug+0x00000121f771)
- #14 config::attribute_value::string_visitor const::result_type boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string>::apply_visitor<config::attribute_value::string_visitor const>(config::attribute_value::string_visitor const&) const /usr/include/boost/variant/variant.hpp:2370 (wesnoth-debug+0x0000012194f2)
- #15 config::attribute_value::string_visitor::result_type boost::apply_visitor<config::attribute_value::string_visitor, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const>(config::attribute_value::string_visitor const&, boost::variant<boost::blank, config::attribute_value::true_false, config::attribute_value::yes_no, int, unsigned long long, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string> const&) /usr/include/boost/variant/detail/apply_visitor_unary.hpp:84 (wesnoth-debug+0x000001214624)
- #16 config::attribute_value::string_visitor::result_type config::attribute_value::apply_visitor<config::attribute_value::string_visitor>(config::attribute_value::string_visitor const&) const src/config.hpp:377 (wesnoth-debug+0x000001210f4f)
- #17 config::attribute_value::str[abi:cxx11]() const src/config.cpp:355 (wesnoth-debug+0x0000011fd199)
- #18 config::attribute_value::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const src/config.hpp:330 (wesnoth-debug+0x00000042facf)
- #19 about::set_about(config const&) src/about.cpp:165 (wesnoth-debug+0x000000471e92)
- #20 game_config_manager::init_game_config(game_config_manager::FORCE_RELOAD_CONFIG) src/game_config_manager.cpp:100 (wesnoth-debug+0x0000004e19eb)
- #21 operator() src/wesnoth.cpp:645 (wesnoth-debug+0x00000042ad9c)
- #22 _M_invoke /usr/include/c++/5/functional:1871 (wesnoth-debug+0x00000042e3d7)
- #23 std::function<void ()>::operator()() const /usr/include/c++/5/functional:2267 (wesnoth-debug+0x000000556e62)
- #24 boost::detail::thread_data<std::function<void ()> >::run() <null> (wesnoth-debug+0x000000560072)
- #25 <null> <null> (libboost_thread.so.1.60.0+0x00000001363c)
- Thread T4 (tid=24565, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.60.0+0x000000012038)
- #2 boost::thread::thread<std::function<void ()>&>(std::function<void ()>&) <null> (wesnoth-debug+0x000000556507)
- #3 gui2::tloadscreen::pre_show(gui2::twindow&) src/gui/dialogs/loadscreen.cpp:110 (wesnoth-debug+0x00000054ffef)
- #4 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:49 (wesnoth-debug+0x0000005485cd)
- #5 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #6 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #7 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3f327) in __interceptor_memcmp
- ==================
- 20160616 21:10:37 warning config: add-on 'Orb_Test' has no _info.cfg; cannot read version info
- ==================
- WARNING: ThreadSanitizer: data race (pid=24551)
- Write of size 4 at 0x000001fd78d4 by main thread:
- #0 ~tdraw_interval_setter src/gui/widgets/window.cpp:626 (wesnoth-debug+0x000000612486)
- #1 gui2::twindow::show(bool, unsigned int) src/gui/widgets/window.cpp:639 (wesnoth-debug+0x000000612a49)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Previous read of size 4 at 0x000001fd78d4 by thread T1:
- #0 draw_timer src/gui/widgets/window.cpp:151 (wesnoth-debug+0x00000061035e)
- #1 <null> <null> (libSDL2-2.0.so.0+0x00000007b611)
- As if synchronized via sleep:
- #0 nanosleep <null> (libtsan.so.0+0x000000041de2)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000cc3d4)
- #2 gui2::tdialog::show(CVideo&, unsigned int) src/gui/dialogs/dialog.cpp:51 (wesnoth-debug+0x000000548606)
- #3 gui2::tloadscreen::display(CVideo&, std::function<void ()>) src/gui/dialogs/loadscreen.cpp:188 (wesnoth-debug+0x000000550b29)
- #4 do_gameloop src/wesnoth.cpp:661 (wesnoth-debug+0x00000042b315)
- #5 main src/wesnoth.cpp:1071 (wesnoth-debug+0x00000042ceaa)
- Location is global 'gui2::(anonymous namespace)::draw_interval' of size 4 at 0x000001fd78d4 (wesnoth-debug+0x000001fd78d4)
- Thread T1 'SDLTimer' (tid=24553, running) created by main thread at:
- #0 pthread_create <null> (libtsan.so.0+0x000000027d7d)
- #1 <null> <null> (libSDL2-2.0.so.0+0x0000000c7f40)
- #2 __libc_start_main <null> (libc.so.6+0x0000000205ef)
- SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:626 in ~tdraw_interval_setter
- ==================
- Checking lua scripts... ok
Advertisement
Add Comment
Please, Sign In to add comment