ratosh / pirarucu

A Kotlin Chess Engine
GNU General Public License v3.0
36 stars 3 forks source link

v1.9.2 game issues under Cute Chess GUI #36

Closed tpoppins closed 6 years ago

tpoppins commented 6 years ago

A couple of examples from an ongoing 40/40 gauntlet for CCRL:

Illegal move

[Event "Pirarucu 1.9.2 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2018.05.19"]
[Round "10"]
[White "Wuttang r2 64-bit"]
[Black "Pirarucu 1.9.2 64-bit"]
[Result "1-0"]
[ECO "C05"]
[GameEndTime "2018-05-19T10:10:54.638 Eastern Daylight Time"]
[GameStartTime "2018-05-19T09:53:28.669 Eastern Daylight Time"]
[Opening "French"]
[PlyCount "47"]
[Termination "illegal move"]
[TimeControl "40/1320"]
[Variation "Tarrasch, Closed Variation"]

1. e4 {book} e6 {book} 2. d4 {book} d5 {book} 3. Nd2 {book} Nf6 {book}
4. e5 {book} Nfd7 {book} 5. f4 {book} c5 {book} 6. c3 {book} Nc6 {book}
7. Ndf3 {book} cxd4 {book} 8. cxd4 {book} Nb6 {book} 9. Ne2 {book} Bd7 {book}
10. g4 {book} a5 {book} 11. Bg2 {+1.19/17 44s} Bb4+ {-0.04/25 41s}
12. Nc3 {+1.19/15 44s} Rc8 {+0.06/24 31s} 13. O-O {+1.20/17 44s}
Bxc3 {+0.06/27 41s} 14. bxc3 {+1.33/18 44s} Na7 {+0.01/25 46s}
15. Bd2 {+1.39/17 44s} Nb5 {0.00/24 29s} 16. Rc1 {+1.41/18 44s}
Nc4 {0.00/28 34s} 17. Re1 {+1.30/17 44s} Nba3 {-0.08/24 42s}
18. h4 {+1.41/17 44s} Nb2 {+0.69/25 22s} 19. Qb3 {+1.46/20 44s}
Nac4 {+1.05/26 28s} 20. Qc2 {+1.41/19 44s} Ba4 {+1.39/30 24s}
21. Qb1 {+1.49/19 44s} Qb6 {+1.33/30 32s} 22. a3 {+0.39/18 44s}
Qb3 {+1.36/25 22s} 23. Qa1 {+0.23/20 44s} Nd3 {+1.55/29 20s}
24. Rb1 {+0.01/20 44s, Black makes an illegal move: b3a4} 1-0

Time forfeit

[Event "Pirarucu 1.9.2 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2018.05.19"]
[Round "12"]
[White "Pirarucu 1.9.2 64-bit"]
[Black "Wuttang r2 64-bit"]
[Result "0-1"]
[ECO "A50"]
[GameEndTime "2018-05-19T11:38:16.533 Eastern Daylight Time"]
[GameStartTime "2018-05-19T10:54:52.471 Eastern Daylight Time"]
[Opening "Queen's Indian Accelerated"]
[PlyCount "78"]
[Termination "time forfeit"]
[TimeControl "40/1320"]

1. d4 {book} Nf6 {book} 2. c4 {book} b6 {book} 3. Nf3 {book} e6 {book}
4. g3 {book} Bb4+ {book} 5. Bd2 {book} Be7 {book} 6. Nc3 {book} Bb7 {book}
7. Bg2 {book} c6 {book} 8. e4 {book} d5 {book} 9. exd5 {+0.42/24 35s}
cxd5 {-0.92/18 41s} 10. Ne5 {+0.37/24 58s} O-O {-0.92/18 41s}
11. Bg5 {+0.37/23 40s} Nc6 {-0.76/18 41s} 12. O-O {+0.32/22 37s}
h6 {-0.78/17 41s} 13. Bxf6 {+1.15/27 26s} Bxf6 {-0.83/19 41s}
14. cxd5 {+1.16/28 38s} Nxe5 {-0.92/20 41s} 15. dxe5 {+1.19/28 85s}
Bxe5 {-0.96/21 41s} 16. dxe6 {+1.25/26 39s} Bxg2 {-0.96/20 41s}
17. exf7+ {+1.25/26 83s} Rxf7 {-0.96/18 41s} 18. Kxg2 {+1.25/26 24s}
Bd4 {-0.91/18 41s} 19. Qd2 {+1.27/25 29s} Qf6 {-0.84/17 41s}
20. Rad1 {+1.25/24 80s} Bxc3 {-1.08/19 41s} 21. Qxc3 {+1.44/30 16s}
Qxc3 {-1.16/20 41s} 22. bxc3 {+1.41/30 17s} Rc8 {-1.15/21 41s}
23. Rd3 {+1.43/29 15s} Rfc7 {-1.14/22 41s} 24. Rc1 {+1.43/38 16s}
b5 {-1.14/20 41s} 25. Rb1 {+1.43/40 18s} a6 {-1.14/20 41s}
26. Rd6 {+1.49/29 30s} Rxc3 {-1.19/21 41s} 27. Rxa6 {+1.63/25 14s}
Rc2 {-1.19/19 41s} 28. Rb4 {+1.67/26 13s} Rf8 {-1.05/23 41s}
29. Rf4 {+1.61/32 17s} Rxf4 {-1.06/23 41s} 30. gxf4 {+1.61/35 14s}
Kf7 {-0.97/25 41s} 31. Ra5 {+1.65/32 14s} Kf6 {-0.97/22 41s}
32. Rxb5 {+1.65/37 12s} Rxa2 {-0.95/24 41s} 33. Rb3 {+1.65/40 51s}
h5 {-0.95/25 41s} 34. Kf3 {+1.71/31 11s} g6 {-0.95/25 41s}
35. Ke3 {+1.71/38 12s} Ra1 {-0.95/23 41s} 36. Ke4 {+1.71/44 10s}
Ra4+ {0.00/29 41s} 37. Kf3 {+1.71/45 10s} Ra2 {0.00/34 41s}
38. Ke3 {+1.71/44 11s} Ra1 {0.00/34 41s} 39. Ke4 {+1.71/47 15s}
Ra4+ {0.00/32 41s, White loses on time} 0-1

Stalled connection

[Event "Pirarucu 1.9.2 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2018.05.19"]
[Round "1"]
[White "Monarch 1.7"]
[Black "Pirarucu 1.9.2 64-bit"]
[Result "1-0"]
[ECO "A50"]
[GameEndTime "2018-05-19T06:31:49.345 Eastern Daylight Time"]
[GameStartTime "2018-05-19T04:24:17.884 Eastern Daylight Time"]
[Opening "Kevitz-Trajkovich defense"]
[PlyCount "223"]
[Termination "stalled connection"]
[TimeControl "40/1320"]

1. d4 {book} Nf6 {book} 2. c4 {book} Nc6 {book} 3. Nc3 {book} e5 {book}
4. d5 {book} Ne7 {book} 5. e4 {book} Ng6 {book} 6. Bd3 {book} Bc5 {book}
7. Qe2 {book} d6 {book} 8. g3 {book} c6 {book} 9. Nf3 {+0.19/10 28s}
Bh3 {-0.03/22 40s} 10. Be3 {+0.27/9 38s} Bb4 {-0.02/22 75s}
11. a3 {+0.49/11 122s} Bxc3+ {0.00/23 26s} 12. bxc3 {+0.88/12 26s}
O-O {+0.08/23 80s} 13. Ng5 {+1.00/11 38s} Bg4 {+0.07/22 24s}
14. f3 {+0.87/12 43s} Bd7 {+0.46/23 24s} 15. h4 {+0.79/11 64s} h6 {+0.37/23 26s}
16. dxc6 {+0.54/11 76s} bxc6 {+0.26/24 84s} 17. Nh3 {+0.55/11 26s}
d5 {+0.28/23 31s} 18. Nf2 {+0.64/10 27s} Re8 {+0.24/22 37s}
19. O-O {+0.77/10 23s} Nh5 {+0.26/23 39s} 20. Nh1 {+0.72/11 40s}
Nf6 {+0.26/24 26s} 21. Qc2 {+0.71/11 77s} Be6 {+0.39/22 19s}
22. cxd5 {+0.66/11 29s} cxd5 {+0.37/21 17s} 23. Nf2 {+0.60/10 26s}
d4 {+0.26/22 59s} 24. Bd2 {+0.62/11 19s} Nh5 {+0.23/22 16s}
25. Kg2 {+0.01/11 64s} dxc3 {+0.18/22 26s} 26. Qxc3 {+0.02/10 58s}
Rc8 {+0.18/23 23s} 27. Qb2 {+0.58/10 19s} Nf6 {+0.17/22 40s}
28. Be3 {+0.77/10 51s} Re7 {+0.01/23 40s} 29. Rab1 {+0.81/10 41s}
Rd7 {+0.02/21 17s} 30. Rfd1 {+0.83/10 42s} Ra8 {+0.01/23 14s}
31. Qb5 {+0.98/10 38s} Ba2 {+0.01/22 20s} 32. Rb4 {+0.97/10 22s}
Rd6 {+0.01/23 25s} 33. Qa4 {+0.98/10 21s} Be6 {0.00/22 16s}
34. Rbb1 {+0.95/10 31s} a6 {-0.05/20 30s} 35. Bc4 {+0.97/10 28s}
Rxd1 {-0.12/23 12s} 36. Rxd1 {+1.05/12 26s} Bd7 {-0.12/24 14s}
37. Qb3 {+1.17/11 19s} Qe7 {-0.23/22 12s} 38. Nd3 {+1.12/11 24s}
Bb5 {-0.19/19 10s} 39. Rb1 {+1.16/11 24s} Bxc4 {-0.23/22 15s}
40. Qxc4 {+1.19/10 7.8s} Qxa3 {-0.22/25 7.8s} 41. Bc5 {+1.13/12 27s}
Qa5 {-0.93/28 46s} 42. Rb7 {+1.06/11 34s} Nh8 {-0.84/29 36s}
43. Bb4 {+1.39/11 30s} Qa1 {-0.73/29 46s} 44. Bc3 {+1.32/11 92s}
Qd1 {-0.89/29 42s} 45. Nxe5 {+1.35/11 28s} Qc2+ {-0.95/28 56s}
46. Kh3 {+1.21/11 18s} Qd1 {-0.95/30 55s} 47. Kh2 {+1.18/11 27s}
Qc2+ {-0.95/31 33s} 48. Kg1 {+1.16/12 66s} Rd8 {-0.71/29 36s}
49. Be1 {+1.25/13 60s} Qxc4 {-0.77/32 30s} 50. Nxc4 {+1.25/11 3.7s}
Ng6 {-0.80/31 42s} 51. Bf2 {+1.24/12 40s} Rc8 {-0.48/28 35s}
52. Rb4 {+1.17/12 32s} Rc7 {-0.52/26 47s} 53. Bb6 {+1.19/12 61s}
Rc6 {-0.58/26 51s} 54. Bd4 {+1.18/11 16s} Nd7 {-0.60/28 45s}
55. Bb2 {+1.12/11 35s} Rc8 {-0.46/25 26s} 56. f4 {+1.15/13 84s}
Ne7 {-0.56/27 65s} 57. Ba3 {+1.21/11 31s} h5 {-0.54/27 27s}
58. Nd2 {+1.16/12 36s} Ng6 {-0.60/26 23s} 59. Rc4 {+1.22/13 28s}
Ra8 {-0.72/26 24s} 60. e5 {+1.31/12 68s} Ngf8 {-0.77/29 41s}
61. Rc6 {+1.36/12 24s} a5 {-0.83/31 45s} 62. Ne4 {+1.38/12 36s}
Ne6 {-0.94/30 21s} 63. Kg2 {+1.32/12 44s} Ndf8 {-0.97/29 121s}
64. Rd6 {+1.27/12 46s} Nc7 {-0.97/26 38s} 65. Rd1 {+1.17/12 47s}
Nfe6 {-0.83/23 16s} 66. f5 {+1.40/12 23s} Nf8 {-1.16/26 27s}
67. Kg1 {+1.41/11 30s} Na6 {-1.05/23 31s} 68. Bb2 {+1.40/11 33s}
Nb4 {-0.85/23 22s} 69. Bc3 {+1.33/11 27s} Nc6 {-0.90/24 25s}
70. Rd6 {+1.36/12 32s} Ne7 {-0.87/26 13s} 71. f6 {+1.46/14 17s}
Nf5 {-0.73/28 24s} 72. fxg7 {+1.49/13 13s} Ne6 {-0.62/26 16s}
73. Rd2 {+1.36/13 27s} Kxg7 {-0.62/26 10s} 74. Rf2 {+1.34/13 24s}
Ne3 {-0.43/28 88s} 75. Nd6 {+1.30/12 20s} Ra7 {-0.42/26 72s}
76. Rf3 {+1.21/12 21s} Ng4 {-0.27/24 13s} 77. Ne8+ {+1.11/12 19s}
Kg6 {-0.06/25 7.0s} 78. Nf6 {+1.03/13 19s} a4 {0.00/25 6.2s}
79. Nd5 {+0.83/12 18s} a3 {+0.61/22 6.1s} 80. Rf1 {+0.44/13 21s}
Rd7 {+1.46/25 7.0s} 81. Rd1 {0.00/13 24s} a2 {+3.39/34 33s}
82. Bb2 {-1.04/13 130s} Rb7 {+4.17/39 31s} 83. Ba1 {-0.95/11 21s}
Rb1 {+4.22/45 32s} 84. Nc3 {-2.64/17 34s} Rxd1+ {+4.39/46 33s}
85. Nxd1 {-2.90/17 4.4s} Nc5 {+4.41/50 57s} 86. Bb2 {-3.00/17 24s}
Na4 {+4.78/45 29s} 87. Ba1 {-1.80/16 20s} Kf5 {+4.86/46 43s}
88. Kg2 {-2.98/16 50s} Nc5 {+4.94/47 32s} 89. Bc3 {-3.15/16 68s}
Nb3 {+5.02/35 28s} 90. Kg1 {-3.21/16 22s} a1=Q {+5.34/43 40s}
91. Bxa1 {-3.35/19 35s} Nxa1 {+5.61/42 50s} 92. Nc3 {-3.34/17 27s}
Kxe5 {+5.61/45 24s} 93. Ne2 {-3.33/17 17s} Nc2 {+5.80/46 25s}
94. Nf4 {-3.93/17 89s} Ke4 {+5.97/43 40s} 95. Nxh5 {-4.12/18 15s}
Kf3 {+5.97/38 22s} 96. Ng7 {-4.27/18 22s} Nd4 {+6.14/40 25s}
97. h5 {-4.30/17 18s} Kxg3 {+6.14/33 23s} 98. Kf1 {-4.38/17 37s}
Kf4 {+6.38/47 169s} 99. Ne8 {-4.35/16 18s} Ke5 {+6.38/46 26s}
100. Kg2 {-4.35/16 61s} Nf6 {+6.39/40 21s} 101. h6 {-4.41/17 27s}
Nf5 {+6.44/39 43s} 102. Nc7 {-4.42/16 16s} Nxh6 {+6.53/37 128s}
103. Na6 {-4.45/16 37s} Nhg4 {+6.55/40 24s} 104. Nb4 {-4.46/16 36s}
Ke4 {+6.55/34 24s} 105. Nc6 {-4.40/15 23s} Nh5 {+6.57/31 17s}
106. Ne7 {-4.44/15 27s} Nf4+ {+6.58/34 47s} 107. Kg3 {-4.43/15 17s}
Ne3 {+6.58/32 20s} 108. Kf2 {-4.49/15 28s} Nf5 {+6.75/30 12s}
109. Nc6 {-4.48/15 18s} Nd4 {+6.77/40 15s} 110. Ne7 {-4.67/16 45s}
Nd5 {+9.76/48 10s} 111. Nxd5 {-11.99/18 41s} Kxd5 {+64.48/86 9.8s}
112. Ke3 {-12.06/21 37s, Black's connection stalls} 1-0

The "stalled connection" problem is the most common one, with ten more games out of 128 ending this way.

Setup: Dual Xeon E5-2670 @2.6 GHz, 16 cores, 32 GB RAM Hyperthreading OFF Win 7 x64 Pro Java v10.0.1 (build 10.0.1+10) amd64 Cute Chess GUI 20180328 dev build Margin = 5000 ms (under the Time Control settings) Max concurrent games = 14 (problems persist even at 12)

I'll post a complete game log for one or more of the examples above once I manage to save it (Cute Chess doesn't show the logs for the games that don't have the viewing focus, unfortunately).

ratosh commented 6 years ago

Thanks for the nice report! I'm checking those issues.

tpoppins commented 6 years ago

Despite encountering same issues on another of my boxes (a dual Xeon X5670, 12 cores, HT off, max concurrent games = 8) I wasn't able to catch a complete log for any of the problem games. I realize that just a PGN may not be enough to track down the bug(s), so if you'd like me to run a debug version that produces a log of its own I can try to reproduce the issues.

ratosh commented 6 years ago

I've made a release (v1.9.3) with some changes addressing all reported issues. The "stalled connection" problem should be fixed.

tpoppins commented 6 years ago

A test gauntlet with v1.9.3 produced four stalls out of 29 completed games. Here is one short example:

[Event "Pirarucu 1.9.3 64-bit 40/40 Gauntlet"]
[Site "Dual X5670"]
[Date "2018.05.23"]
[Round "1"]
[White "Pirarucu 1.9.3 64-bit"]
[Black "Aice 0.99.2"]
[Result "0-1"]
[ECO "A10"]
[GameDuration "00:23:51"]
[GameEndTime "2018-05-23T14:35:21.546 Eastern Daylight Time"]
[GameStartTime "2018-05-23T14:11:30.536 Eastern Daylight Time"]
[Opening "English Opening"]
[PlyCount "28"]
[Termination "stalled connection"]
[TimeControl "40/1260"]

1. c4 {book} g6 {book} 2. Nc3 {book} Bg7 {book} 3. g3 {book} d6 {book}
4. Bg2 {book} Nc6 {book} 5. e4 {book} e5 {book} 6. Nge2 {book} h5 {book}
7. h3 {book} h4 {book} 8. g4 {book} f5 {book} 9. gxf5 {+0.18/24 32s}
gxf5 {-0.09/11 15s} 10. exf5 {+0.28/22 39s} Bxf5 {-0.10/11 28s}
11. d3 {+0.28/23 30s} Qd7 {+0.53/11 35s} 12. Nd5 {+0.28/18 24s}
O-O-O {+0.69/11 31s} 13. Nec3 {+0.27/21 46s} Nf6 {+0.98/10 18s}
14. Ne4 {+0.14/21 41s} Nxd5 {+1.81/12 21s, White's connection stalls} 0-1

and longer one:

[Event "Pirarucu 1.9.3 64-bit 40/40 Gauntlet"]
[Site "Dual X5670"]
[Date "2018.05.23"]
[Round "1"]
[White "Popochin 4.1 64-bit"]
[Black "Pirarucu 1.9.3 64-bit"]
[Result "1-0"]
[ECO "D85"]
[GameDuration "00:56:44"]
[GameEndTime "2018-05-23T17:05:11.658 Eastern Daylight Time"]
[GameStartTime "2018-05-23T16:08:27.043 Eastern Daylight Time"]
[Opening "Gruenfeld"]
[PlyCount "81"]
[Termination "stalled connection"]
[TimeControl "40/1260"]
[Variation "Modern Exchange Variation"]

1. d4 {book} Nf6 {book} 2. c4 {book} g6 {book} 3. Nc3 {book} d5 {book}
4. cxd5 {book} Nxd5 {book} 5. e4 {book} Nxc3 {book} 6. bxc3 {book} Bg7 {book}
7. Nf3 {book} c5 {book} 8. h3 {book} O-O {book} 9. Be2 {book} Nc6 {book}
10. Be3 {book} f5 {book} 11. Qb3+ {+0.55/18 42s} e6 {-0.52/24 26s}
12. exf5 {+0.51/20 41s} gxf5 {-0.52/25 28s} 13. dxc5 {+0.51/21 39s}
Qa5 {-0.52/28 39s} 14. O-O {+0.70/24 76s} Qxc3 {-0.43/27 273s}
15. Qxc3 {+0.57/24 35s} Bxc3 {-0.49/29 26s} 16. Rad1 {+0.57/22 34s}
f4 {-0.50/27 23s} 17. Bd2 {+0.62/21 33s} Nd4 {-0.59/25 20s}
18. Rfe1 {+0.73/22 32s} Nxe2+ {-0.81/23 19s} 19. Rxe2 {+0.81/22 31s}
Rd8 {-1.25/24 22s} 20. Re4 {+1.09/22 30s} e5 {-1.36/25 23s}
21. Ree1 {+0.85/23 29s} Bxd2 {-1.41/28 14s} 22. Rxd2 {+1.03/22 28s}
Rxd2 {-1.48/30 22s} 23. Nxd2 {+1.04/23 27s} Bd7 {-1.44/27 9.5s}
24. Nc4 {+1.06/25 26s} Re8 {-1.46/28 17s} 25. Rxe5 {+1.04/27 25s}
Kg7 {-1.44/28 14s} 26. Rxe8 {+1.03/29 24s} Bxe8 {-1.12/42 19s}
27. Na5 {+1.01/31 24s} b6 {-1.10/45 15s} 28. cxb6 {+1.01/32 16s}
axb6 {-1.10/45 20s} 29. Nc4 {+1.01/29 22s} b5 {-1.09/42 8.2s}
30. Nd6 {+0.99/24 22s} Bc6 {-1.09/43 16s} 31. Nf5+ {+1.00/29 21s}
Kf6 {-1.10/46 17s} 32. Nd4 {+1.02/28 20s} Bd5 {-1.10/53 14s}
33. a3 {+1.07/29 19s} Bc4 {-1.09/42 16s} 34. g3 {+1.09/27 19s}
Ke5 {-1.09/41 31s} 35. Nf3+ {+1.09/27 18s} Kf5 {-1.08/38 35s}
36. g4+ {+1.08/27 18s} Kf6 {-1.09/39 15s} 37. Kh2 {+1.08/27 17s}
Bf1 {-1.09/45 13s} 38. h4 {+0.93/28 16s} Bd3 {-1.03/39 12s}
39. Ng5 {+1.19/25 16s} Bc2 {-1.10/41 22s} 40. Kg2 {+1.21/27 15s}
h6 {-1.11/43 9.3s} 41. Nh3 {+1.44/32 46s, Black's connection stalls} 1-0

I wasn't able to save the game log for any of the stalled games; however, I managed to reproduce a loss on time (that with Margin=2000 ms):

[Event "?"]
[Site "?"]
[Date "2018.05.23"]
[Round "?"]
[White "Pirarucu 1.9.3 64-bit"]
[Black "Absolute Zero 2.4.7.2 64-bit"]
[Result "0-1"]
[ECO "C17"]
[GameDuration "00:24:56"]
[GameEndTime "2018-05-23T19:41:01.035 Eastern Daylight Time"]
[GameStartTime "2018-05-23T19:16:04.749 Eastern Daylight Time"]
[Opening "French"]
[PlyCount "38"]
[Termination "time forfeit"]
[TimeControl "40/1260"]
[Variation "Winawer, Advance, Russian Variation"]

1. e4 {book} e6 {book} 2. d4 {book} d5 {book} 3. Nc3 {book} Bb4 {book}
4. e5 {book} c5 {book} 5. Qg4 {book} Ne7 {book} 6. Nf3 {book} Nbc6 {book}
7. Bb5 {book} cxd4 {book} 8. Nxd4 {book} O-O {book} 9. Nxc6 {+0.24/27 38s}
Bxc3+ {+0.24/19 23s} 10. bxc3 {+0.23/26 22s} bxc6 {+0.28/20 23s}
11. Bd3 {+0.23/29 29s} Qc7 {+0.28/18 18s} 12. Qh5 {+0.23/26 16s}
Ng6 {+0.39/17 23s} 13. f4 {+0.22/29 32s} c5 {+0.30/17 23s}
14. O-O {+0.28/26 27s} c4 {+0.59/18 23s} 15. Bxg6 {+0.27/24 18s}
Qb6+ {+0.54/20 23s} 16. Kh1 {+0.23/29 51s} hxg6 {+0.58/20 18s}
17. Qd1 {+0.24/32 64s} Qa5 {+0.63/22 23s} 18. Rf3 {+0.23/30 94s}
Bb7 {+0.68/20 19s} 19. Qe1 {+0.28/23 15s}
Qa4 {+0.61/19 18s, White loses on time} 0-1

and here's the full game log: Pirarucu193-forfeit.txt

Interesting lines at the end:

>Absolute Zero 2.4.7.2 64-bit(1): go wtime 853844 btime 1043937 movestogo 22

>Pirarucu 1.9.3 64-bit(0): go wtime 853844 btime 1026222 movestogo 21
<Pirarucu 1.9.3 64-bit(0): info depth 1 time 0 score cp 28 nps 0 nodes 10 hashfull 999 pv f3f2 f8b8 h1g1 a4e8 c1e3 b7c6 e3d4 a7a6 a2a3 b8b2 
<snip>
<Pirarucu 1.9.3 64-bit(0): info depth 37 time 12520 score cp 28 nps 1204310 nodes 15077965 hashfull 999 pv f3f2 f8b8 h1g1 a4e8 c1e3 b7c6 e3d4 a7a6 a2a3 b8b2 
>Pirarucu 1.9.3 64-bit(0): stop
<Pirarucu 1.9.3 64-bit(0): info depth 38 time 856013 score cp 28 nps 1136036 nodes 972462225 hashfull 1000 pv f3f2 f8b8 h1g1 a4e8 c1e3 b7c6 g2g4 
<Pirarucu 1.9.3 64-bit(0): bestmove f3f2
ratosh commented 6 years ago

Thanks for the report. Are "stalled connection" happening when running high concurrency? From the logs seems like the engine is working fine but going into a really long search on depth 38, when the GUI sends a stop (after the game ends) it stops the current search and report the best move found.

tpoppins commented 6 years ago

The concurrency for the above gauntlet was 10 games (the Dual X5670 has 12 physical cores). The forfeit game was produced by running eight separate instances of Cute Chess GUI, one game each, for a total of about 20 games.

ratosh commented 6 years ago

With the latest release (v1.9.4) time loss should be gone. Since I'm not able to reproduce "stalled connection" bug I've added some debug information trying to identify if the search thread is starting properly.

tpoppins commented 6 years ago

A short 40-games 40/40 gauntlet for v1.9.4 just finished on the X5670 (concurrency 8). Zero forfeits and stalls! Not to mention a clean 10-0 score vs. Wuttang r2 64-bit (2018 Elo). Well done!

I'm running an additional 200 games on another box with double the concurrency for a larger sample. Meanwhile you can expect v1.9.2 to appear on our 40/40 list by Monday.

ratosh commented 6 years ago

Wow! Great news! Thanks for the help!

tpoppins commented 6 years ago

Bad news and good news.

The bad news is that out of the 100 extra games completed at concurrency=16 three ended up as "stalls". But that's not half bad considering that two of them were stalls by both engines, so probably not Pirarucu's fault. One stall out of a hundred -- that's a vast improvement over a dozen out of 128. And no forfeits and illegals any more. I can name engines hundreds Elo higher that behave much worse.

The good news is that v1.9.2 results are in and they exceed my expectations considerably:

Good job and thank you for the prompt response and the fix!

ratosh commented 6 years ago

Do you have the log from the stalled connections game? It indeed had great results, i'll check the games and try to identify improvements.

Thanks for the help.

tpoppins commented 6 years ago

I don't, unfortunately. And now with your recent fixes it should be a very rare beast exceedingly hard to catch.

However, I got an idea: how 'bout running a short gauntlet with v1.9.2 installed via InBetween (which acts as a middleman between the engine and the GUI)? InBetween does provide a log of communications between the engine and the GUI, so the data for any stalled games may be helpful in tracking down the issue.

The only catch would be that I never used it and there might be a lot of data to sift through.

ratosh commented 6 years ago

You should be able to do it with cutechess cli but i believe we can live with that low error rate for now.

tpoppins commented 6 years ago

Agreed!