critter-mj / akochan

Artificial Intelligence for Japanese mahjong

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error when self-match: terminate called after throwing an instance of 'std::bad_alloc'

hyskylord opened this issue · comments

Hi,

I am trying to build and run akochan on Windows 10. The program always throws this error in a given line depending on the random seed I enter for the self-match. For instance, it will terminate at line 47 when I use random seed 1.

commented

Try setting a lower OMP_NUM_THREADS like 1?

Thank you for trying akochan.
Can you copy & paste or attach a file with which the program throws error at line 47?

Hi,
Thank you for your attention. Here is the log for seed 1 and 2.
./system.exe test "2" "3"
0 {"aka_flag": true, "kyoku_first": 4, "type": "start_game"}
1 {"bakaze": "E", "dora_marker": "E", "haiyama": ["2m", "5m", "5m", "4s", "3p", "4s", "2s", "9p", "6s", "C", "5s", "E", "7s", "1s", "1m", "5p", "7p", "6s", "7p", "W", "1s", "E", "4p", "9s", "N", "P", "2m", "P", "8s", "6p", "9m", "1m", "7s", "C", "9p", "2p", "8p", "3p", "5sr", "4m", "W", "1m", "6p", "2m", "3m", "N", "4m", "4s", "7s", "1m", "2p", "8m", "5s", "2m", "3s", "8p", "N", "4p", "8s", "P", "8s", "1s", "9m", "7m", "C", "1p", "P", "6m", "4m", "5mr", "8m", "9m", "E", "N", "6m", "3s", "2s", "9s", "4p", "F", "8p", "6m", "F", "3p", "7m", "F", "4p", "8m", "7m", "1p", "2s", "6s", "2p", "F", "8m", "4s", "3m", "5p", "2s", "1p", "4m", "S", "9m", "9p", "3p", "6p", "9s", "C", "5p", "W", "7p", "5m", "3s", "6p", "9p", "7m", "W", "3m", "2p", "3s", "7p", "5pr", "S", "S", "6s", "8s", "1s", "S", "1p", "9s", "E", "7s", "3m", "8p", "6m", "5s"], "honba": 0, "kyoku": 1, "kyotaku": 0, "oya": 0, "scores": [25000, 25000, 25000, 25000], "tehais": [["2m", "3p", "6s", "7s", "7p", "1s", "N", "8s", "7s", "8p", "W", "3m", "7s"], ["5m", "4s", "C", "1s", "6s", "E", "P", "6p", "C", "3p", "1m", "N", "1m"], ["5m", "2s", "5s", "1m", "7p", "4p", "2m", "9m", "9p", "5sr", "6p", "4m", "2p"], ["4s", "9p", "E", "5p", "W", "9s", "P", "1m", "2p", "4m", "2m", "4s", "8m"]], "type": "start_kyoku"}
2 {"actor": 0, "pai": "5s", "type": "tsumo"}
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

./system.exe test "1" "2"
0 {"aka_flag": true, "kyoku_first": 4, "type": "start_game"}
1 {"bakaze": "E", "dora_marker": "3m", "haiyama": ["7s", "6p", "6m", "9m", "E", "2m", "S", "2p", "9s", "6m", "1s", "N", "5p", "2p", "4m", "2s", "1m", "2p", "1s", "S", "2p", "S", "4p", "5mr", "3p", "1m", "C", "5sr", "E", "5p", "E", "6p", "6p", "1s", "E", "3s", "8s", "7p", "P", "2s", "5s", "8s", "9m", "8p", "6m", "4m", "5pr", "5m", "8m", "6s", "5m", "9m", "P", "F", "2m", "7p", "6m", "7p", "3p", "3s", "7m", "2s", "4p", "7s", "6s", "5m", "3p", "8m", "3p", "4s", "C", "1m", "N", "F", "8p", "1p", "4m", "1p", "1p", "W", "P", "1s", "9s", "5p", "6p", "P", "9p", "W", "9s", "4m", "8s", "C", "3s", "3m", "S", "W", "9m", "4p", "9s", "1m", "8p", "6s", "W", "9p", "5s", "7s", "8p", "4s", "7m", "N", "9p", "7m", "2s", "6s", "2m", "1p", "7s", "N", "8m", "3m", "2m", "7m", "C", "F", "F", "5s", "8s", "9p", "3m", "4s", "3m", "8m", "3s", "4p", "4s", "7p"], "honba": 0, "kyoku": 1, "kyotaku": 0, "oya": 0, "scores": [25000, 25000, 25000, 25000], "tehais": [["7s", "E", "9s", "5p", "1m", "2p", "3p", "E", "6p", "8s", "5s", "6m", "8m"], ["6p", "2m", "6m", "2p", "2p", "S", "1m", "5p", "1s", "7p", "8s", "4m", "6s"], ["6m", "S", "1s", "4m", "1s", "4p", "C", "E", "E", "P", "9m", "5pr", "5m"], ["9m", "2p", "N", "2s", "S", "5mr", "5sr", "6p", "3s", "2s", "8p", "5m", "9m"]], "type": "start_kyoku"}
2 {"actor": 0, "pai": "P", "type": "tsumo"}
3 {"actor": 0, "pai": "1m", "tsumogiri": false, "type": "dahai"}
4 {"actor": 1, "pai": "F", "type": "tsumo"}
5 {"actor": 1, "pai": "1s", "tsumogiri": false, "type": "dahai"}
7 {"actor": 2, "pai": "S", "tsumogiri": false, "type": "dahai"}
8 {"actor": 3, "pai": "2m", "type": "tsumo"}
9 {"actor": 3, "pai": "S", "tsumogiri": false, "type": "dahai"}
10 {"actor": 0, "pai": "7p", "type": "tsumo"}
11 {"actor": 0, "pai": "5s", "tsumogiri": false, "type": "dahai"}
12 {"actor": 1, "pai": "6m", "type": "tsumo"}
13 {"actor": 1, "pai": "S", "tsumogiri": false, "type": "dahai"}
14 {"actor": 2, "pai": "7p", "type": "tsumo"}
15 {"actor": 2, "pai": "9m", "tsumogiri": false, "type": "dahai"}
16 {"actor": 3, "pai": "3p", "type": "tsumo"}
17 {"actor": 3, "pai": "N", "tsumogiri": false, "type": "dahai"}
18 {"actor": 0, "pai": "3s", "type": "tsumo"}
19 {"actor": 0, "pai": "3s", "tsumogiri": true, "type": "dahai"}
20 {"actor": 1, "pai": "7m", "type": "tsumo"}
21 {"actor": 1, "pai": "1m", "tsumogiri": false, "type": "dahai"}
22 {"actor": 2, "pai": "2s", "type": "tsumo"}
23 {"actor": 2, "pai": "2s", "tsumogiri": true, "type": "dahai"}
25 {"actor": 3, "pai": "9m", "tsumogiri": false, "type": "dahai"}
26 {"actor": 0, "pai": "4p", "type": "tsumo"}
27 {"actor": 0, "pai": "8m", "tsumogiri": false, "type": "dahai"}
28 {"actor": 1, "pai": "7s", "type": "tsumo"}
29 {"actor": 1, "pai": "F", "tsumogiri": false, "type": "dahai"}
30 {"actor": 2, "pai": "6s", "type": "tsumo"}
31 {"actor": 2, "pai": "7p", "tsumogiri": false, "type": "dahai"}
33 {"actor": 3, "pai": "2m", "tsumogiri": false, "type": "dahai"}
34 {"actor": 0, "pai": "5m", "type": "tsumo"}
36 {"actor": 0, "pai": "P", "tsumogiri": false, "type": "dahai"}
38 {"actor": 1, "pai": "3p", "type": "tsumo"}
39 {"actor": 1, "pai": "7m", "tsumogiri": false, "type": "dahai"}
40 {"actor": 0, "fan": 2, "fu": 32, "hora_tehais": ["5m", "6m", "2p", "3p", "4p", "5p", "6p", "7p", "7s", "8s", "9s", "E", "E"], "pai": "7m", "scores": [28900, 21100, 25000, 25000], "target": 1, "type": "hora", "uradora_marker": ["8m"]}
42 {"bakaze": "E", "dora_marker": "7m", "haiyama": ["5m", "8p", "6p", "7p", "4s", "P", "N", "7p", "9s", "2p", "9s", "4m", "5m", "6s", "E", "7s", "6p", "8p", "F", "N", "4s", "1s", "3p", "8s", "7m", "7s", "4p", "3m", "2m", "1p", "5p", "6m", "8m", "1s", "2s", "3m", "2m", "3m", "5p", "W", "8p", "9m", "3s", "4m", "F", "E", "4s", "4p", "W", "E", "2p", "5sr", "9m", "S", "W", "5s", "S", "9s", "9p", "3p", "6s", "7m", "8m", "2p", "C", "9p", "P", "3s", "C", "3p", "8s", "2p", "5pr", "7p", "9m", "8m", "3p", "6m", "S", "5s", "1m", "F", "8s", "7s", "4p", "F", "2s", "2s", "1m", "1p", "6s", "5p", "2m", "6p", "N", "4m", "7p", "P", "5mr", "6s", "7m", "1s", "2s", "8m", "4m", "E", "C", "5s", "1p", "6m", "6p", "4s", "9s", "2m", "6m", "1m", "3s", "1p", "3m", "3s", "9p", "8p", "9m", "1m", "P", "5m", "N", "1s", "9p", "S", "7m", "4p", "C", "W", "7s", "8s"], "honba": 1, "kyoku": 1, "kyotaku": 0, "oya": 0, "scores": [28900, 21100, 25000, 25000], "tehais": [["5m", "4s", "9s", "5m", "6p", "4s", "7m", "2m", "8m", "2m", "8p", "F", "W"], ["8p", "P", "2p", "6s", "8p", "1s", "7s", "1p", "1s", "3m", "9m", "E", "E"], ["6p", "N", "9s", "E", "F", "3p", "4p", "5p", "2s", "5p", "3s", "4s", "2p"], ["7p", "7p", "4m", "7s", "N", "8s", "3m", "6m", "3m", "W", "4m", "4p", "5sr"]], "type": "start_kyoku"}
43 {"actor": 0, "pai": "9m", "type": "tsumo"}
44 {"actor": 0, "pai": "W", "tsumogiri": false, "type": "dahai"}
45 {"actor": 1, "pai": "S", "type": "tsumo"}
46 {"actor": 1, "pai": "9m", "tsumogiri": false, "type": "dahai"}
47 {"actor": 2, "pai": "W", "type": "tsumo"}
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

Later I noticed @Equim-chan packed a release version in Akochan_Reviewer and that works for me. But this still happens when I try to build by myself. I tried to set OMP_NUM_THREADS = 1 and it didn't change the result.

commented

What is your MinGW environment? The pre-built binary I bundled in akochan-reviewer was built with mingw64/mingw-w64-x86_64-gcc in a MSYS2 environment, should be 10.3.0. The boost lib came from the MSYS2 package as well (mingw64/mingw-w64-x86_64-boost).

commented

If you are using a 32-bit toolchain (mingw-w64-i686) it might be problematic.

Indeed. I changed to x64 version of mingw and this didn't happen again.