Ticket #134 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years ago

--allow-suicide crash 3.7.9

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)

Game played by twinbot on KGS
GNU Go 3.7.9 reproduces the failure with the random seed and --allow-suicide.
I am not sure that G8 is allowed even under New-Zeland rules, and it is a useless move.

gnugo-3.7.9-ref --seed 575930647 --allow-suicide -l twinbot-nz1.sgf


***assertion failure:
combination.c:414 - trymove near G8***


   A B C D E F G H J
 9 . . . . . . X . . 9
 8 . . . . X X . X O 8
 7 . . X . . . X O . 7
 6 . . . . . . . . . 6
 5 . X . . X . . X . 5
 4 . . . . . . . . . 4
 3 . . X . . . X . . 3
 2 . . . . X . . . . 2     WHITE (O) has captured 0 stones
 1 . . . . . . . . . 1     BLACK (X) has captured 1 stones
   A B C D E F G H J
(;GM[1]FF[4]SZ[9]KM[0.0]HA[9]GN[GNU Go 3.7.9 stepped on a bug]
AB[eb][cc][gc][be][ee][he][cg][gg][eh]
;W[gb];B[hb];W[hc];B[fb];W[ib];B[ga]
)
gnugo 3.7.9 (seed 575930647): You stepped on a bug.

Attachments

twinbot-nz1.sgf (174 bytes) - added by alain 2 years ago.
twinbot-nz2.sgf (474 bytes) - added by alain 2 years ago.
The same crash but _only_ with the twin. I cannot reproduce it with 3.7.9. Is it a cache pb due to the twin?
nz-crash.tst (112 bytes) - added by alain 2 years ago.
test for the twin. gg379 passes the test, twin fails n°20.

Regression Results

Attachment Rev. PASS FAIL Nodes Status

Change History

Changed 2 years ago by alain

Changed 2 years ago by alain

  • description modified (diff)

Changed 2 years ago by alain

The same crash but _only_ with the twin. I cannot reproduce it with 3.7.9. Is it a cache pb due to the twin?

Changed 2 years ago by alain

The twin contains all recent CVS bugfix patches, and since then it often step on this bug

Without the twin, the end of the trace is

Move generation values A2 to 25.06

Top moves:
1. A2  25.06
Move at A2 would be an illegal ko capture.
Reevaluating ko threats.

Top moves:
Filling a liberty at D2
genmove() recommends D2 with value 1.00
nz-crash:20     pass D2 [D2]

With the twin option, the end of the trace is

Top moves:
1. A2  25.06
Move at A2 would be an illegal ko capture.
Reevaluating ko threats.

Top moves:
Filling a liberty at D2
genmove() recommends D2 with value 1.00
Checking safety of a black move at D2


***assertion failure:
combination.c:414 - trymove near D2***

Changed 2 years ago by alain

test for the twin. gg379 passes the test, twin fails n°20.

Changed 2 years ago by gunnar

The problem is that --allow-suicide modifies the behavior of is_legal(), which is unsafe since many parts of the code assumes that legal moves don't suicide. A typical example is that after a trymove has been played, it's assumed that there is a stone on the vertex for which e.g. countlib can be called.

I don't think we should try to change those conventions since there is little to gain by allowing suicides in the internal reading. Instead we should change so that externally generated suicide moves are allowed explicitly in respective interface.

Changed 2 years ago by gunnar

  • patch set

This is fixed by the patch gunnar_7_10.13 in #132.

Changed 2 years ago by gunnar

  • status changed from new to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.