View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0005424 | Spring engine | General | public | 2016-12-28 04:50 | 2017-01-01 23:02 | ||||
Reporter | Google_Frog | ||||||||
Assigned To | |||||||||
Priority | normal | Severity | crash | Reproducibility | have not tried | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | 103.0 +git | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0005424: 103.0.1-420 crash | ||||||||
Description | I tried to start a game with some luaAIs. Access violation crash. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
Notes | |
abma (administrator) 2016-12-28 07:16 Last edited: 2016-12-28 07:16 |
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 |
Kloot (developer) 2016-12-28 11:51 |
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 |
Anonymous (viewer) 2017-01-01 23:02 |
Fix ae4fcc49042b0000666b67642eb9e53c0de2db48 committed to develop branch: fix 0005424 (un-FUBAR ThreadPool after the completely untested changes in 986ed93586), repo: spring changeset id: 7736 |
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 |