The above shows the engine picking an entirely different pv with best move f5 instead of the a2a1=n sent by icsdroneng.
At this point my engine is pretty stable, I havent really seen a bug in a long time so I'm don't really think it's that. Am I simply reading this wrong? Or, are there known bugs for icsdroneng?
Indeed, it seems that icsdrone was working perfectly here. It just relays what the engine played. You cannot expect it to correct the engine's move, when the latter plays a blunder...
Thanks, just wanted to make sure it wasn't something with icsdrone. It's strange, the move it's displays from its pv should be the same as its chosen move. They both come from the same array that holds the pv from the search...
Note that this was not the last PV it printed. It outputted two more, (the second one probably just a repeat at the end of an iteration, as the node-counts are the same), which have a different score, but an empty PV.
So it seems that you are printing the first move of an empty PV here.
I'm using polyglot because the engine is UCI; does this affect anything? It looks like some of the info strings here dont even have the pv attached in the icsdrone debug logs.
Polyglot converts the PV to SAN before sending it to icsdrone. If your PV contains illegal moves, I don't know what it would do. So the missing PVs might not mean anything. Fail-low seems unlikely, as the reported score is higher than the one of a previously reported PV of the same iteration.
Anyway, Polyglot would not use the PV to derive the played move. It just relays what it received from the engine through the 'bestmove' command. To know what went on between engine and Polyglot you would have to make a Polyglot log.