Nyanyan / Egaroucid

Super Strong and Fast Othello AI / Computer Othello Reversi
https://www.egaroucid.nyanyan.dev/
GNU General Public License v3.0
101 stars 11 forks source link

Crash Bug with Egaroucid 7.1.0-7.2.0 #273

Closed Nyanyan closed 1 month ago

Nyanyan commented 3 months ago

7.1.0や7.2.0でクラッシュバグが発生したとの報告を受けた

e6f6f5f4e3d6g4d3c3h3c4g3g5g6c7c6c5b6d7b5b4f3e7f7h5h4h2

のあとにd1をplayすると即座にクラッシュするらしい。

Nyanyan commented 3 months ago

setting.json

{
  "ai_put_black": true,
  "ai_put_white": false,
  "auto_update_check": true,
  "book_acc_level": 0,
  "book_file": "path/to/book.egbk3",
  "book_learn_depth": 36,
  "book_learn_error_leaf": 2,
  "book_learn_error_per_move": 2,
  "book_learn_error_sum": 2,
  "change_book_by_right_click": false,
  "change_color_type": false,
  "generate_random_board_moves": 20,
  "hash_level": 25,
  "lang_name": "english",
  "level": 28,
  "n_disc_hint": 35,
  "n_threads": 4,
  "pause_when_pass": false,
  "show_book_accuracy": false,
  "show_graph": true,
  "show_graph_sum_of_loss": false,
  "show_graph_value": true,
  "show_last_move": true,
  "show_legal": true,
  "show_log": true,
  "show_next_move": true,
  "show_next_move_change_view": false,
  "show_opening_name": true,
  "show_opening_on_cell": false,
  "show_play_ordering": false,
  "show_principal_variation": true,
  "show_stable_discs": false,
  "umigame_value_depth": 60,
  "use_book": true,
  "use_book_learn_depth": true,
  "use_book_learn_error_leaf": true,
  "use_book_learn_error_per_move": true,
  "use_book_learn_error_sum": true,
  "use_disc_hint": true,
  "use_umigame_value": false
}
Nyanyan commented 1 month ago

多分直ったと思うので良しとする

Nyanyan commented 1 month ago

Egaroucid 7.3.0でbook生成をしていたらクラッシュバグが再現した

Nyanyan commented 1 month ago

Book deviateでYBWCを使っているとき(ybwc_split_nwsのparallel_tasks.emplace_back)にアクセス違反が発生しているよう

Nyanyan commented 1 month ago

book deviateのexpand leavesは基本的に1つの問題を1つのスレッドで解くようにしているが、今回のクラッシュは問題数が減ってきたときにマルチスレッドで問題を解くようにしている場合に起こるっぽい

Nyanyan commented 1 month ago

tree_search_legalを呼ぶときのuse_legalがおかしい image

Nyanyan commented 1 month ago

適当に動かしていたら、上のuse_legalとは別件でmove_list_evaluate_nwsでアクセス違反が発生していることがわかった

Nyanyan commented 1 month ago

Egaroucid for Consoleでもmove_list_evaluate_nwsでバグが発生した。

Nyanyan commented 1 month ago

ということなので、複数スレッドで実行したときにスレッドプールで問題が発生している気がする

Nyanyan commented 1 month ago

とりあえず7.0.0のスレッドプールに戻して様子を見る

Nyanyan commented 1 month ago

7.0.0のスレッドプールでも同様のバグが発生した

Nyanyan commented 1 month ago

7.0.0以前だと結構ずっとスレッドプールはいじっていないので、スレッドプールが根本原因ではなさそう

Nyanyan commented 1 month ago

mid_nwsでのYBWCで長男を問答無用でvに代入しているのは良くない(そのタイミングで探索を強制終了するとバグる)ので、修正した。これは7.0.0から引き継がれているバグ

Nyanyan commented 1 month ago

mid_nwsのYBWCでの長男の扱いを修正したところ、全くクラッシュしなくなったので、これだけが原因だったと見て良さそう