2019-12-14 22:08 CET

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0005977Spring engineGeneralpublic2018-05-08 19:44
Reporterabma 
Assigned ToKloot 
PrioritynormalSeveritycrashReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version 
Target Version105.0Fixed in Version 
Summary0005977: ==2874==ERROR: AddressSanitizer: attempting double-free on 0x604000088f50 in thread T21 at start
Description==2874==ERROR: AddressSanitizer: attempting double-free on 0x604000088f50 in thread T21:
[f=-000001] [Sound] [ISound::Initialize] spawning sound-thread (101.0ms)
[f=-000001] [Sound] [ISound::Initialize] spawning sound-thread (201.3ms)
[f=-000001] [Sound] [ISound::Initialize] spawning sound-thread (301.5ms)
    #0 0x7f5c6c734040 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdc040)
    #1 0x7f5c697cddce in 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&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11ddce)
    #2 0x7f5c697ce0e8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11e0e8)
    0000003 0x5601fba21805 in LogSinkHandler::RecordLogMessage(int, 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&) rts/System/Log/LogSinkHandler.cpp:50
    0000004 0x5601fba213de in log_sink_record_logSinkHandler rts/System/Log/LogSinkHandler.cpp:14
    0000005 0x5601fba123d7 in log_backend_record rts/System/Log/Backend.cpp:80
    #6 0x5601fba17f30 in log_filter_record rts/System/Log/DefaultFilter.cpp:209
    #7 0x5601fba18322 in log_frontend_record rts/System/Log/DefaultFilter.cpp:258
    #8 0x5601fbb38679 in CSound::UpdateThread(int) rts/System/Sound/OpenAL/Sound.cpp:632
    #9 0x5601fbb47ed2 in void std::__invoke_impl<void, void (CSound::*&)(int), CSound*&, int&>(std::__invoke_memfun_deref, void (CSound::*&)(int), CSound*&, int&) /usr/include/c++/7/bits/invoke.h:73
    0000010 0x5601fbb479c5 in std::__invoke_result<void (CSound::*&)(int), CSound*&, int&>::type std::__invoke<void (CSound::*&)(int), CSound*&, int&>(void (CSound::*&)(int), CSound*&, int&) /usr/include/c++/7/bits/invoke.h:95
    #11 0x5601fbb47443 in void std::_Bind<void (CSound::*(CSound*, int))(int)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/7/functional:467
    0000012 0x5601fbb462ca in void std::_Bind<void (CSound::*(CSound*, int))(int)>::operator()<, void>() /usr/include/c++/7/functional:551
    0000013 0x5601fbb4369f in std::_Function_handler<void (), std::_Bind<void (CSound::*(CSound*, int))(int)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/7/bits/std_function.h:316
    0000014 0x5601fb7c6667 in std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706
    #15 0x5601fba49c01 in Threading::ThreadStart(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*) rts/System/Platform/Linux/ThreadSupport.cpp:214
    #16 0x5601fba47742 in void std::__invoke_impl<void, void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&>(std::__invoke_other, void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&) /usr/include/c++/7/bits/invoke.h:60
    #17 0x5601fba472ee in std::__invoke_result<void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&>::type std::__invoke<void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&>(void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&) /usr/include/c++/7/bits/invoke.h:95
    #18 0x5601fba46da9 in void std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/7/functional:467
    #19 0x5601fba46824 in void std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>::operator()<, void>() /usr/include/c++/7/functional:551
    0000020 0x5601fba462a8 in void std::__invoke_impl<void, std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>>(std::__invoke_other, std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>&&) /usr/include/c++/7/bits/invoke.h:60
    #21 0x5601fba45972 in std::__invoke_result<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>>::type std::__invoke<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>>(std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>&&) /usr/include/c++/7/bits/invoke.h:95
    #22 0x5601fba47deb in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #23 0x5601fba47d71 in std::thread::_Invoker<std::tuple<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)> > >::operator()() /usr/include/c++/7/thread:243
    0000024 0x5601fba47cdb in std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)> > > >::_M_run() /usr/include/c++/7/thread:186
    #25 0x7f5c6976b96e (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbb96e)
    0000026 0x7f5c6c10f5a9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x75a9)
    0000027 0x7f5c68e36cbe in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xf6cbe)

0x604000088f50 is located 0 bytes inside of 42-byte region [0x604000088f50,0x604000088f7a)
freed by thread T0 (spring-main) here:
    #0 0x7f5c6c734040 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdc040)
    #1 0x7f5c697cddce in 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&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11ddce)

previously allocated by thread T0 (spring-main) here:
    #0 0x7f5c6c733340 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdb340)
    #1 0x7f5c697cddbe in 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&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11ddbe)

Thread T21 created by T0 (spring-main) here:
    #0 0x7f5c6c68f390 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37390)
    #1 0x7f5c6976bbf4 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbbbf4)
    #2 0x5601fba44d4d in Threading::CreateNewThread(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*) rts/System/Platform/Threading.cpp:299
    0000003 0x5601fbb33365 in CSound::Init() rts/System/Sound/OpenAL/Sound.cpp:123
    0000004 0x5601fbaf454d in ISound::Initialize(bool, bool) rts/System/Sound/ISound.cpp:70
    0000005 0x5601fb8ab8fc in SpringApp::Init() rts/System/SpringApp.cpp:275
    #6 0x5601fb8b170d in SpringApp::Run() rts/System/SpringApp.cpp:800
    #7 0x5601fb866e29 in Run(int, char**) rts/System/Main.cpp:43
    #8 0x5601fb86753c in main rts/System/Main.cpp:92
    #9 0x7f5c68d61a86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21a86)

SUMMARY: AddressSanitizer: double-free (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdc040) in operator delete(void*)
==2874==ABORTING
Additional Information104.0.1-894-gddc8411f2
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0019089

Kloot (developer)

Fix eadbdbce91e7e885fc42e9dd0a4cefcd7ee9783c committed to develop branch: fix 0005977, repo: spring changeset id: 10230

~0019090

Kloot (developer)

Fix 5e3952accdd636e5a7baf3613e4b0fc76bf3c0f1 committed to maintenance branch: fix 0005977

Conflicts:
    rts/Game/UI/InfoConsole.cpp
    rts/Game/UI/InfoConsole.h, repo: spring changeset id: 10231
+Notes

+Related Changesets

-Issue History
Date Modified Username Field Change
2018-05-08 18:07 abma New Issue
2018-05-08 18:31 abma Summary ==2874==ERROR: AddressSanitizer: attempting double-free on 0x604000088f50 in thread T21 on start => ==2874==ERROR: AddressSanitizer: attempting double-free on 0x604000088f50 in thread T21 at start
2018-05-08 18:45 Kloot Assigned To => Kloot
2018-05-08 18:45 Kloot Status new => assigned
2018-05-08 19:42 Kloot Changeset attached => spring develop eadbdbce
2018-05-08 19:42 Kloot Note Added: 0019089
2018-05-08 19:42 Kloot Status assigned => resolved
2018-05-08 19:42 Kloot Resolution open => fixed
2018-05-08 19:44 Kloot Changeset attached => spring maintenance 5e3952ac
2018-05-08 19:44 Kloot Note Added: 0019090
+Issue History