[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gnugo-devel] GNU Go 3.5.7 and latest CVS crash in KGS game
From: |
Gunnar Farnebäck |
Subject: |
Re: [gnugo-devel] GNU Go 3.5.7 and latest CVS crash in KGS game |
Date: |
Sun, 06 Jun 2004 04:47:22 +0200 |
User-agent: |
EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/21.3 (sparc-sun-solaris2.9) MULE/5.0 (SAKAKI) |
Tom wrote:
> My robot (GnuGoCVS) blew chunks on move 127 of the attached game. The
> following will cause an assertion failure with 3.5.7 and the latest CVS:
>
> # gnugo -l 2004-06-03-R-no-GnuGoCVS.sgf -L 127
>
> ***assertion failure:
> owl.c:1408 - board[move] == EMPTY near J19***
Thanks for the report. This seems to be a fairly serious problem,
where the tactical reading retrieves an occupied attack point from the
(non-persistent) cache. If someone wants to help with it, add the
patch below to get an assertion error closer to where the problem is.
Btw, this is nothing that valgrind catches.
/Gunnar
Index: engine/reading.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/reading.c,v
retrieving revision 1.145
diff -u -r1.145 reading.c
--- engine/reading.c 2 Jun 2004 20:28:45 -0000 1.145
+++ engine/reading.c 6 Jun 2004 02:43:43 -0000
@@ -2962,6 +2962,9 @@
&retval, NULL, &xpos) == 2) {
TRACE_CACHED_RESULT(retval, xpos);
SGFTRACE(xpos, retval, "cached");
+ if (retval != 0) {
+ ASSERT1(board[xpos] == EMPTY, xpos);
+ }
if (move)
*move = xpos;
return retval;