Possible UCI protocol Bug with 3rd Party engines.

Get your specific HIARCS/Junior support questions answered here as well as up-to-the-minute news!

Moderators: Watchman, Mark Uniacke, mrudolf

Post Reply
JamesCoons
Member
Posts: 30
Joined: Mon Sep 17, 2012 6:43 pm

Possible UCI protocol Bug with 3rd Party engines.

Post by JamesCoons »

I noticed that the lockup which occurs with stockfish when switching databases is now fixed with the latest fix in stockfish. However it seems like HIARCS might be at least partially responsible for the problem according to the UCI protocol definition. The fix states:

Search is started after setting a position and
issuing UCI 'go' command. Then if we stop the search and call 'go' again without setting a new position it is assumed that the previous setup is preserved, but this is not the case because what happens is that
SetupStates is reset to NULL, leading to a crash as
soon as RootPos.is_draw() is called because st->previous is now stale.

UCI protocol is not very clear about requiring that a position is setup always before launching a search,
so here we easy the life of GUI developers assuming
that the current state is preserved after returning
from a 'stop' command.
JamesCoons
Member
Posts: 30
Joined: Mon Sep 17, 2012 6:43 pm

Never mind it looks like the problem is still there.

Post by JamesCoons »

My mistake the problem is still there. I don't see the issue with other GUIs. For example chessx does not seem to have this issue with stockfish.

To reproduce the issue run stockfish on a position. stop the engine, go to another game and stop the engine go to another position and try to restart the engine. It often won't restart. If you switch to another engine then switch back it does restart.
Post Reply