|
From: | Gunnar Farnebäck |
Subject: | Re: [gnugo-devel] Error in gnugo 3.9.1 |
Date: | Thu, 27 Jan 2011 22:42:40 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20101226 Icedove/3.0.11 |
On 01/25/11 22:00, Gunnar Farnebäck wrote:
On 01/23/11 23:06, Gunnar Farnebäck wrote:On 01/22/11 19:18, Kőri Gábor wrote:Hi, I found an error in the latest official release in use gnugo. I attached the SGF file of the game. Gnugo plays as black. When the level of the bot set to 9, 10, 11 or 12, then gnugo crashes.Thanks for the report. Unfortunately I'm not able to reproduce the crash. Can you describe your platform, build flags, runtime options, and the exact error message in case the crash is due to an assertion failure?Thanks to further off-list assistance from Kőri we now have a reproducible testcase and indications from valgrind that uninitialized memory gets into the semeai reading, leading to corrupted data structures and eventually a segmentation fault. See http://trac.gnugo.org/gnugo/ticket/228 for details.
Problem identified. There are some more details and a patch in the ticket but the short story is that recent improvements to the liberty filling in the semeai reading conflicted with the so called tactical reading mode for semeais. The basic idea of the tactical semeai reading is to bypass eye analysis and owl pattern matching in order to speed up the semeai reading. The drawback is that the accuracy suffers and currently tactical semeai reading is only employed for playing levels below 8 and under certain conditions in the deeper part of the search tree. This also explains why the regression testing didn't catch this bug, since we did that at level 10, where the tactical semeai reading never is used. Had we run the regressions with level set to 7 or lower we quickly would have seen crashes. The proposed patch solves the problem by taking the drastic measure of removing the tactical semeai reading completely. My testing showed rather marginal speed improvements from the tactical semeai reading, which I don't think are worth the increased code complexity for this feature. /Gunnar
[Prev in Thread] | Current Thread | [Next in Thread] |