2024-04-19 21:52 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0005424Spring engineGeneralpublic2017-01-01 23:02
ReporterGoogle_Frog 
Assigned To 
PrioritynormalSeveritycrashReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version103.0 +git 
Target VersionFixed in Version 
Summary0005424: 103.0.1-420 crash
DescriptionI tried to start a game with some luaAIs. Access violation crash.
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0017006

abma (administrator)

Last edited: 2016-12-28 07:16

View 2 revisions

translated: (seems 4 threads crashed in a row:)

https://github.com/spring/spring/tree/103.0.1-420-gc30795b

??:0
??:0
rts/lib/mingw-std-threads/mingw.mutex.h:105
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/functional:601
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/bits/atomic_base.h:624
rts/System/ThreadPool.cpp:174
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/bits/unique_ptr.h:67
??:0
??:0
??:0
??:0
??:0
??:0
rts/lib/mingw-std-threads/mingw.mutex.h:105
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/functional:601
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/bits/atomic_base.h:624
rts/System/ThreadPool.cpp:174
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/bits/unique_ptr.h:67
??:0
??:0
??:0
??:0
??:0
??:0
rts/lib/mingw-std-threads/mingw.mutex.h:105
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/functional:601
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/bits/atomic_base.h:624
rts/System/ThreadPool.cpp:174
/opt/mxe/usr/lib/gcc/i686-w64-mingw32/4.8.1/include/c++/bits/unique_ptr.h:67
??:0
??:0
??:0

~0017008

Kloot (developer)

threadpool is FUBAR because jK added a lock-free queue to it that can only work in an SPSC context:

1) threads will never push two tasks with the same id, but can overwrite still-running tasks (!) mapping to the same index
2) threads can also concurrently write to the same index if task A has id K and task B has id K+ringSize
3) other issues I didn't delve into

for now, just disable it via https://github.com/spring/spring/blob/develop/CMakeLists.txt#L363

~0017011

Anonymous (viewer)

Fix ae4fcc49042b0000666b67642eb9e53c0de2db48 committed to develop branch: fix 0005424 (un-FUBAR ThreadPool after the completely untested changes in 986ed93586), repo: spring changeset id: 7736
+Notes

-Issue History
Date Modified Username Field Change
2016-12-28 04:50 Google_Frog New Issue
2016-12-28 04:50 Google_Frog File Added: infolog.txt
2016-12-28 07:16 abma Note Added: 0017006
2016-12-28 07:16 abma Note Edited: 0017006 View Revisions
2016-12-28 11:51 Kloot Note Added: 0017008
2017-01-01 23:02 Changeset attached => spring develop ae4fcc49
2017-01-01 23:02 Anonymous Note Added: 0017011
2017-01-01 23:02 Anonymous Status new => resolved
2017-01-01 23:02 Anonymous Resolution open => fixed
+Issue History