Ticket #128 (closed defect: fixed)
try to play illegal suicide or ko, while playing endgame damezumari.
| Reported by: | alain | Owned by: | gnugo |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.7.10 |
| Component: | source | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | patch: | yes |
Description (last modified by alain) (diff)
Reported by Hiroshi Yamashita
GNU 3.7.9 try to play J4 an illegal suicide move 81.
gnugo -l Aya-GNU-illegal-81.sgf -L 81 -d0x400000 Top moves: Top moves: 1. D6 0.14 black (X) move J4
Additional examples are taken from CGOS, where the time limit makes GNU Go decrease level, so to reproduce them level 5 or less is sometimes needed.
Attachments
Regression Results
| Attachment | Rev. | PASS | FAIL | Nodes | Status | |
| filllib.diff | never tested | |||||
| gunnar_7_10.10.diff | never tested |
Change History
comment:1 Changed 6 years ago by alain
valgrind gnugo \-l Aya-GNU-illegal-81.sgf -L81 -d0x400000 ==15013== Memcheck, a memory error detector for x86-linux. ==15013== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==15013== Using valgrind-2.4.0, a program supervision framework for x86-linux. ==15013== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==15013== For more details, rerun with: -v ==15013== ==15013== Conditional jump or move depends on uninitialised value(s) ==15013== at 0x8088111: store_persistent_semeai_cache (persistent.c:1283) ==15013== by 0x80844E9: owl_analyze_semeai_after_move (owl.c:584) ==15013== by 0x808499D: owl_analyze_semeai (owl.c:362) ==15013== by 0x809FD25: semeai (semeai.c:381) ==15013== by 0x806727C: make_dragons (dragon.c:418) ==15013== by 0x806905C: examine_position (genmove.c:160) ==15013== by 0x806940E: do_genmove (genmove.c:352) ==15013== by 0x806A16B: genmove (genmove.c:258) ==15013== by 0x8054894: load_and_analyze_sgf_file (play_solo.c:156) ==15013== by 0x804A4FC: main (main.c:1035) Top moves: Top moves: 1. D6 0.14 black (X) move J4
comment:2 Changed 6 years ago by alain
_But_ after applying the 2 gunnar-patch (see #124) valgrind does not complains and the bug is still here.
Top moves: Top moves: 1. D6 0.15 black (X) move J4 ==15075== ==15075== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 15 from 1)
comment:3 Changed 6 years ago by alain
Top move list is only one move D6.
It is seen as blunder => removed from the list, which is now empty
So it should PASS , but i don't understand why it does not.
OT: the real good move is B2, but it is not seen.
comment:4 Changed 6 years ago by alain
Oops, it is so simple : ./interface/gnugo -t ....
Top moves: 1. D6 0.14 Checking safety of a black move at D6 After D6 Worm at A4 becomes attackable. Move at D6 is a blunder, subtracting 1.42. Move at D6 is now valued -1.27. Checking safety of a black move at D6 After D6 Worm at A4 becomes attackable. Filling a liberty at J4 genmove() recommends J4 with value 1.00 black (X) move J4
Changed 6 years ago by alain
-
attachment
filllib.diff
added
simple patch, maybe i missed some subtlities, but i seems OK.
comment:5 Changed 6 years ago by alain
- patch set
With the patch:
gnugo -t -l Aya-GNU-illegal-81.sgf -L 81 ... Aftermath move at B2 genmove() recommends B2 with value 1.00 black (X) move B2
Changed 6 years ago by alain
-
attachment
146.sgf
added
Last proposed move is suicide at C1, if level is low. Fixed by the patch.
Changed 6 years ago by alain
-
attachment
9509.sgf
added
Last proposed move is suicide. Comment is inside the game.
Changed 6 years ago by alain
-
attachment
60311.sgf
added
Last proposed move is suicide. Comment is inside the game.
comment:8 Changed 6 years ago by alain
- Summary changed from try to play suicide to try to play illegal suicide or ko, while playing endgame damezumari.
Changed 6 years ago by alain
-
attachment
58273.sgf
added
At level 5 or less, fillib play illegal simple-ko violation.
Changed 6 years ago by alain
-
attachment
8723.sgf
added
At level 5 or less, fillib play illegal simple-ko violation.
comment:11 Changed 6 years ago by gunnar
In the original example the move at D6 actually is fine, sacrificing A4 is harmless.
There's nothing wrong with the proposed patch although there is a deeper problem in confirm_safety() returning illegal defense moves, which should be fixed as well.
Changed 6 years ago by gunnar
-
attachment
gunnar_7_10.10.diff
added
new testcases and detect_tactical_blunder() revision
comment:12 Changed 6 years ago by gunnar
The attached patch gunnar_7_10.10 fixes the confirm_safety() problem by revising detect_tactical_blunder(). It also adds three testcases from these games (including the first one called filllib19.sgf) and a FIXME about the fact that D6 in the first game isn't really a blunder.
All problems reported in this ticket are solved by the patch.
comment:13 Changed 6 years ago by gunnar
- Status changed from new to closed
- Resolution set to fixed
The patch in filllib.diff has been added under the name alain_7_10.1. Together with gunnar_7_10.10 everything in this ticket should be resolved now.
