Open jdart1 opened 7 years ago
Does it still crash when the sanitizers are disabled?
Yes. But it is infrequent. Once every dozen or so long time-control games. With tablebases disabled I see no crashes. Btw. I notice Ronald de Man's code at https://github.com/syzygy1/tb/tree/master/src has made some decompress fixes recently. But it is not immediately clear to me how to apply to Fathom.
The crash occurs in tbcore.c
, which is pretty much unchanged from Ronald's version. I am also not at all familiar with this code.
Once every dozen or so long time-control games.
That is quite frequent, so it is unusual that it has not been noticed before.
So I am really not sure since I can't reproduce the problem. I have tested 1000s of games with Fathom and Gull and did not observe any crashes.
This appears to be fixed by making variable "ready" atomic (but this only works for C++). See
https://github.com/jdart1/Fathom/commit/64685b54da02f36676e4d6a4a503b95b42fc711c
Perhaps this is worth reporting to Ronald?
I am seeing occasional crashing calling probe_wdl (supposedly thread-safe) in a multithreaded engine.
Stack trace follows (generated by GCC 6.2 with -fsanitize=address and -fsanitize=bounds) (Note: this is with my pending pull request applied):
==23941==ERROR: AddressSanitizer: SEGV on unknown address 0x7f9b9c815a02 (pc 0x0000004ec1b9 bp 0x7f99f9ac0bf0 sp 0x7f99f9ac0b80 T3)
0 0x4ec1b8 in decompress_pairs syzygy/tbcore.c:1500
AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV syzygy/tbcore.c:1500 in decompress_pairs Thread T3 created by T0 here:
0 0x7f99ff53d558 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x31558)