Dev Builds » 20181216-0853

Use this dev build

NCM plays each Stockfish dev build 20,000 times against Stockfish 14. This yields an approximate Elo difference and establishes confidence in the strength of the dev builds.


Host Duration Avg Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN


Commit ID 4e2bb8fa44fe03a2fdb2d3448ac93986354bf9ae
Author Joost VandeVondele
Date 2018-12-16 08:53:11 UTC
Fix a segfault. this patch fixes a rare but reproducible segfault observed playing a multi-threaded match, it is discussed somewhat in fishcooking. From the core file, it could be observed that the issue was in qsearch, namely: ```` ss->pv[0] = MOVE_NONE; ```` and the backtrace shows the it arrives there via razoring, called from the rootNode: ```` (gdb) bt alpha=-19, beta=682, depth=DEPTH_ZERO) at search.cpp:1247 ```` Indeed, ss->pv can indeed by a nullptr at the rootNode. However, why is the segfault so rare ? The reason is that the condition that guards razoring: ```` (depth < 2 * ONE_PLY && eval <= alpha - RazorMargin) ```` is almost never true, since at the root alpha for depth < 5 is -VALUE_INFINITE. Nevertheless with the new failHigh scheme, this is not guaranteed, and rootDepth > 5, can still result in a depth < 2 search at the rootNode. If now another thread, via the hash, writes a new low eval to the rootPos qsearch can be entered. Rare but not unseen... I assume that some of the crashes in fishtest recently might be due to this. Closes No functional change
Copyright 2011–2024 Next Chess Move LLC