https://github.com/ddugovic/Stockfish/tree/tbprobe_revert and master should produce the same results (debug=yes) for:
setoption name SyzygyPath value [PATH]
bench 128 1 22
$ ls ../tb/
KBBBvK.rtbw KBNvKQ.rtbz KBvK.rtbw KNPvKR.rtbz KPvKB.rtbw KQBvK.rtbz KQPvK.rtbw KQRPvK.rtbz KRBNvK.rtbw KRNvKR.rtbz KRRvKP.rtbw
KBBBvK.rtbz KBNvKR.rtbw KBvK.rtbz KNPvK.rtbw KPvKB.rtbz KQNNvK.rtbw KQPvK.rtbz KQRRvK.rtbw KRBNvK.rtbz KRNvK.rtbw KRRvKP.rtbz
KBBNvK.rtbw KBNvKR.rtbz KNNNvK.rtbw KNPvK.rtbz KPvKN.rtbw KQNNvK.rtbz KQQBvK.rtbw KQRRvK.rtbz KRBPvK.rtbw KRNvK.rtbz KRRvKQ.rtbw
KBBNvK.rtbz KBNvK.rtbw KNNNvK.rtbz KNvKB.rtbw KPvKN.rtbz KQNPvK.rtbw KQQBvK.rtbz KQRvKB.rtbw KRBPvK.rtbz KRPPvK.rtbw KRRvKQ.rtbz
KBBPvK.rtbw KBNvK.rtbz KNNPvK.rtbw KNvKB.rtbz KPvKP.rtbw KQNPvK.rtbz KQQNvK.rtbw KQRvKB.rtbz KRBvKB.rtbw KRPPvK.rtbz KRRvKR.rtbw
KBBPvK.rtbz KBPPvK.rtbw KNNPvK.rtbz KNvKN.rtbw KPvKP.rtbz KQNvKB.rtbw KQQNvK.rtbz KQRvKN.rtbw KRBvKB.rtbz KRPvKB.rtbw KRRvKR.rtbz
KBBvKB.rtbw KBPPvK.rtbz KNNvKB.rtbw KNvKN.rtbz KPvKQ.rtbw KQNvKB.rtbz KQQPvK.rtbw KQRvKN.rtbz KRBvKN.rtbw KRPvKB.rtbz KRRvK.rtbw
KBBvKB.rtbz KBPvKB.rtbw KNNvKB.rtbz KNvKP.rtbw KPvKQ.rtbz KQNvKN.rtbw KQQPvK.rtbz KQRvKP.rtbw KRBvKN.rtbz KRPvKN.rtbw KRRvK.rtbz
KBBvKN.rtbw KBPvKB.rtbz KNNvKN.rtbw KNvKP.rtbz KPvKR.rtbw KQNvKN.rtbz KQQQvK.rtbw KQRvKP.rtbz KRBvKP.rtbw KRPvKN.rtbz KRvKB.rtbw
KBBvKN.rtbz KBPvKN.rtbw KNNvKN.rtbz KNvKQ.rtbw KPvKR.rtbz KQNvKP.rtbw KQQQvK.rtbz KQRvKQ.rtbw KRBvKP.rtbz KRPvKP.rtbw KRvKB.rtbz
KBBvKP.rtbw KBPvKN.rtbz KNNvKP.rtbw KNvKQ.rtbz KPvK.rtbw KQNvKP.rtbz KQQRvK.rtbw KQRvKQ.rtbz KRBvKQ.rtbw KRPvKP.rtbz KRvKN.rtbw
KBBvKP.rtbz KBPvKP.rtbw KNNvKP.rtbz KNvKR.rtbw KPvK.rtbz KQNvKQ.rtbw KQQRvK.rtbz KQRvKR.rtbw KRBvKQ.rtbz KRPvKQ.rtbw KRvKN.rtbz
KBBvKQ.rtbw KBPvKP.rtbz KNNvKQ.rtbw KNvKR.rtbz KQBBvK.rtbw KQNvKQ.rtbz KQQvKB.rtbw KQRvKR.rtbz KRBvKR.rtbw KRPvKQ.rtbz KRvKP.rtbw
KBBvKQ.rtbz KBPvKQ.rtbw KNNvKQ.rtbz KNvK.rtbw KQBBvK.rtbz KQNvKR.rtbw KQQvKB.rtbz KQRvK.rtbw KRBvKR.rtbz KRPvKR.rtbw KRvKP.rtbz
KBBvKR.rtbw KBPvKQ.rtbz KNNvKR.rtbw KNvK.rtbz KQBNvK.rtbw KQNvKR.rtbz KQQvKN.rtbw KQRvK.rtbz KRBvK.rtbw KRPvKR.rtbz KRvKQ.rtbw
KBBvKR.rtbz KBPvKR.rtbw KNNvKR.rtbz KPPPvK.rtbw KQBNvK.rtbz KQNvK.rtbw KQQvKN.rtbz KQvKB.rtbw KRBvK.rtbz KRPvK.rtbw KRvKQ.rtbz
KBBvK.rtbw KBPvKR.rtbz KNNvK.rtbw KPPPvK.rtbz KQBPvK.rtbw KQNvK.rtbz KQQvKP.rtbw KQvKB.rtbz KRNNvK.rtbw KRPvK.rtbz KRvKR.rtbw
KBBvK.rtbz KBPvK.rtbw KNNvK.rtbz KPPvKB.rtbw KQBPvK.rtbz KQPPvK.rtbw KQQvKP.rtbz KQvKN.rtbw KRNNvK.rtbz KRRBvK.rtbw KRvKR.rtbz
KBNNvK.rtbw KBPvK.rtbz KNPPvK.rtbw KPPvKB.rtbz KQBvKB.rtbw KQPPvK.rtbz KQQvKQ.rtbw KQvKN.rtbz KRNPvK.rtbw KRRBvK.rtbz KRvK.rtbw
KBNNvK.rtbz KBvKB.rtbw KNPPvK.rtbz KPPvKN.rtbw KQBvKB.rtbz KQPvKB.rtbw KQQvKQ.rtbz KQvKP.rtbw KRNPvK.rtbz KRRNvK.rtbw KRvK.rtbz
KBNPvK.rtbw KBvKB.rtbz KNPvKB.rtbw KPPvKN.rtbz KQBvKN.rtbw KQPvKB.rtbz KQQvKR.rtbw KQvKP.rtbz KRNvKB.rtbw KRRNvK.rtbz
KBNPvK.rtbz KBvKN.rtbw KNPvKB.rtbz KPPvKP.rtbw KQBvKN.rtbz KQPvKN.rtbw KQQvKR.rtbz KQvKQ.rtbw KRNvKB.rtbz KRRPvK.rtbw
KBNvKB.rtbw KBvKN.rtbz KNPvKN.rtbw KPPvKP.rtbz KQBvKP.rtbw KQPvKN.rtbz KQQvK.rtbw KQvKQ.rtbz KRNvKN.rtbw KRRPvK.rtbz
KBNvKB.rtbz KBvKP.rtbw KNPvKN.rtbz KPPvKQ.rtbw KQBvKP.rtbz KQPvKP.rtbw KQQvK.rtbz KQvKR.rtbw KRNvKN.rtbz KRRRvK.rtbw
KBNvKN.rtbw KBvKP.rtbz KNPvKP.rtbw KPPvKQ.rtbz KQBvKQ.rtbw KQPvKP.rtbz KQRBvK.rtbw KQvKR.rtbz KRNvKP.rtbw KRRRvK.rtbz
KBNvKN.rtbz KBvKQ.rtbw KNPvKP.rtbz KPPvKR.rtbw KQBvKQ.rtbz KQPvKQ.rtbw KQRBvK.rtbz KQvK.rtbw KRNvKP.rtbz KRRvKB.rtbw
KBNvKP.rtbw KBvKQ.rtbz KNPvKQ.rtbw KPPvKR.rtbz KQBvKR.rtbw KQPvKQ.rtbz KQRNvK.rtbw KQvK.rtbz KRNvKQ.rtbw KRRvKB.rtbz
KBNvKP.rtbz KBvKR.rtbw KNPvKQ.rtbz KPPvK.rtbw KQBvKR.rtbz KQPvKR.rtbw KQRNvK.rtbz KRBBvK.rtbw KRNvKQ.rtbz KRRvKN.rtbw
KBNvKQ.rtbw KBvKR.rtbz KNPvKR.rtbw KPPvK.rtbz KQBvK.rtbw KQPvKR.rtbz KQRPvK.rtbw KRBBvK.rtbz KRNvKR.rtbw KRRvKN.rtbz
$ cat test4.txt
setoption name SyzygyPath value /home/lila/Stockfish/tb
bench 128 1 1
$ cat test4.txt | ./stockfish
...
Position: 33/42
Segmentation fault (core dumped)
There's still more work to do on this one, although now I think(?) everything merged properly.
These commits are focused on:
#ifdef so future bugs can be fixed by disabling variant codeProgress on 1 is slow; progress on 2 is proceeding much more quickly and hopefully soon I'll be able to add (temporary) debugging code both to a copy of upstream/master and to master to understand where the differences lie. Progress on 3 is difficult to measure before 1 and 2 are done.
Workaround: set SyzygyProbeLimitto 4 for a maximum search depth of 5(?). So now the SSCCE of the problem is:
setoption name SyzygyPath value /home/lila/Stockfish/tb
setoption name SyzygyProbeLimit value 5
bench 128 1 1
Alternatively, comment out the first 25-ish FENs in benchmark.cpp (but not 8/3p3B/5p2/5P2/p7/PP5b/k7/6K1 w - - 0 1 and those following it) and do the following:
setoption name SyzygyPath value /home/lila/Stockfish/tb
setoption name SyzygyProbeLimit value 4
bench 128 1 6
24071511266d984c50a9677551bf45ef8e09060d (revert) is the only known fix but there must be a simpler solution...
SSCCE (5-man syzygybases installed, Makefile has all variants disabled, expected functionality "do not segfault"):
"8/3p3B/5p2/5P2/p7/PP5b/k7/6K1 w - - 0 1",
"8/3k4/8/8/8/4B3/4KB2/2B5 w - - 0 1", // draw
setoption name SyzygyPath value /home/lila/Stockfish/tb
setoption name SyzygyProbeLimit value 4
bench 128 1 6
just saw your debugging session on youtube. i wouldn't mind temporarily removing variant support for syzygy. i'll probably be able to reimplement it next week (after my final exams :smile:).
personally i am mostly intrested in keeping this alive because very similar code is used to serve tablebases on lichess.org.
Cool, and sorry to have made you endure that entire video! 馃槅 I've added a comment that the interesting part starts just before the 2-hour mark.
Best of luck with your final exams! I will gladly accept a PR reintroducing variant support for syzygy.
Thanks, and no worries, I made liberal use of the fast forward function. Assigning myself to this issue so I don't forget.
Shall we close #471 as it can be duplicate?
Most helpful comment
Thanks, and no worries, I made liberal use of the fast forward function. Assigning myself to this issue so I don't forget.