importsfromgooglecode / pychess

Automatically exported from code.google.com/p/pychess
GNU General Public License v3.0
0 stars 0 forks source link

UCIEngine analysis mode synchronization problems #551

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Play a game with stockfish (other UCI engines should theoretically do the 
same
thing if the moves are played quick enough) as the hint analyzer and make a few
quick moves

What is the expected output? What do you see instead?
Hints are not shown anymore.

Stockfish seems to be a comparatively reserved chess engine that takes likes
to take a few seconds and think before outputting a 'bestmove' command.
As a result, if a few quick moves are played and stockfish gets sent a
stop-position-go command set, and then another stop-position-go command set
before stockfish can reply with a 'bestmove' reply for the first 
stop-position-go
command set, then afterwards stockfish will continue to send invalid analysis
lines that apply to the last board rather than the current board.

At the very end of the page at http://wbec-ridderkerk.nl/html/UCIProtocol.html
in the GUI <-> Engine communication example, it says:

// the engine has finished searching and is sending the bestmove command
// which is needed for every "go" command sent to tell the GUI
// that the engine is ready again
        bestmove g1f3 ponder d8f6

The following summary/sampling taken from a PyChess Information Window 
displaying
a stockfish analysis-mode log shows this happening. A quick exchange Nd4xc6 
b7xc6
is done and stockfish gets sent a second stop-position-go before it can reply 
with a
'bestmove' for the first one. Afterwards, stockfish's analysis gets stuck on
the last board rather than the current one:

20:29:53
------------------------------------------------------------
stop
position fen r1bqk2r/pppp1ppp/2N2n2/2b5/2P5/2N5/PP2PPPP/R1BQKB1R b KQkq - 0 6
go infinite
info currmove c3b5 currmovenumber 11

20:29:54
------------------------------------------------------------
info currmove d1d3 currmovenumber 15
stop
position fen r1bqk2r/p1pp1ppp/2p2n2/2b5/2P5/2N5/PP2PPPP/R1BQKB1R w KQkq - 0 7
go infinite

20:29:56
------------------------------------------------------------
bestmove d4c6 ponder b7c6

20:30:21
------------------------------------------------------------
info depth 15 score cp 28 time 25756 nodes 4001901 nps 155377 pv b7c6 e2e3 e8g8 
f1e2 d7d5 e1g1 c8e6 a2a3 a7a5 
d1a4 d8d6 c4d5 c6d5 c1d2 f8b8 
info currmove d7c6 currmovenumber 2
Ignored (b7c6 e2e3 e8g8 f1e2 d7d5 e1g1 c8e6 a2a3 a7a5 d1a4 d8d6 c4d5 c6d5 c1d2 
f8b8) from analyzer: 
ParsingError('b7c6', 'Validation', 
'r1bqk2r/p1pp1ppp/2p2n2/2b5/2P5/2N5/PP2PPPP/R1BQKB1R w KQkq - 0 7')

20:33:40
------------------------------------------------------------
info depth 19 score cp 0 time 224583 nodes 145461335 nps 647695 pv b7c6 g2g3 
a7a5 f1g2 c8a6 b2b3 f6g4 c3e4 c5b4 
c1d2 e8g8 e1g1 d8e7 d2g5 f7f6 g5f4 g4e5 f4e3 e5g4 e3f4 
info currmove d7c6 currmovenumber 2
Ignored (b7c6 g2g3 a7a5 f1g2 c8a6 b2b3 f6g4 c3e4 c5b4 c1d2 e8g8 e1g1 d8e7 d2g5 
f7f6 g5f4 g4e5 f4e3 e5g4 e3f4) 
from analyzer: ParsingError('b7c6', 'Validation', 
'r1bqk2r/p1pp1ppp/2p2n2/2b5/2P5/2N5/PP2PPPP/R1BQKB1R w KQkq - 
0 7')
info nodes 145467012 nps 647106 time 224796 hashfull 1000

The patch is an ongoing work and part of the patch/work attached to issue 550.

Original issue reported on code.google.com by mattgatto on 5 Apr 2010 at 2:58

Attachments:

GoogleCodeExporter commented 9 years ago
Fixed in revision 8799a74c72.

Original comment by mattgatto on 15 Oct 2010 at 3:06