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.
Possible UCI protocol Bug with 3rd Party engines.
Moderators: Watchman, Mark Uniacke, mrudolf
-
- Member
- Posts: 30
- Joined: Mon Sep 17, 2012 6:43 pm
-
- Member
- Posts: 30
- Joined: Mon Sep 17, 2012 6:43 pm
Never mind it looks like the problem is still there.
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.
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.