Additional info:
Replacing all older engines up to RubiChess-1.5 seems to solve the CPU problem. These engines work fine in Arena, Cutechess.
Each finished game with at least one of the older engines playing raises the myracle process cpu usage by 200% ( = 2 stuck threads).
Regards, Andreas
Myracle GUI
Moderator: Ras
-
RubiChess
- Posts: 673
- Joined: Fri Mar 30, 2018 7:20 am
- Full name: Andreas Matthies
-
mar
- Posts: 3069
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
hi Andreas,
that's a bit odd, could you check view/scheduler info to see number of active tasks?
I suspect it's the part of the GUI that unloads engines; I unload the engines asynchronously (in parallel if possible), while holding the core budget in the scheduler until the unload has finished. this allows the GUI to play hyperbullet; since I never reuse engines.
so perhaps that's what causes the high CPU usage and somehow the GUI cannot unload/exit the process in a clean way or maybe
the engines hang on exit; however the GUI should force-terminate the process regardless so this is definitely a bug
so - I assume I could repro by downloading older Rubis (pre-1.5) and trying them under Linux?
will report back here with more info, thanks for the report
that's a bit odd, could you check view/scheduler info to see number of active tasks?
I suspect it's the part of the GUI that unloads engines; I unload the engines asynchronously (in parallel if possible), while holding the core budget in the scheduler until the unload has finished. this allows the GUI to play hyperbullet; since I never reuse engines.
so perhaps that's what causes the high CPU usage and somehow the GUI cannot unload/exit the process in a clean way or maybe
the engines hang on exit; however the GUI should force-terminate the process regardless so this is definitely a bug
so - I assume I could repro by downloading older Rubis (pre-1.5) and trying them under Linux?
will report back here with more info, thanks for the report
-
mar
- Posts: 3069
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
I was able to trace the bug to cleanup of process watchdog thread under some rare conditions that seem to have happened more likely on Linux, so...
build 155 is up:
- fix process watchdog thread cleanup in very rare cases
- fix: game overview boards sync board flip state too
- fix a very rare t-junction problem when rendering 3d board
- new log settings in settings/log
- can enable filter uci log to reduce information not necessary for broadcasts such as isolated currmovenumber and similar
- can enable auto-delete .debug log once the GUI exits
note that it's necessary to update gui_data.zip too due to additional translations
build 155 is up:
- fix process watchdog thread cleanup in very rare cases
- fix: game overview boards sync board flip state too
- fix a very rare t-junction problem when rendering 3d board
- new log settings in settings/log
- can enable filter uci log to reduce information not necessary for broadcasts such as isolated currmovenumber and similar
- can enable auto-delete .debug log once the GUI exits
note that it's necessary to update gui_data.zip too due to additional translations
-
jjh13
- Posts: 111
- Joined: Sat Feb 20, 2010 1:11 pm
- Location: Finland
Re: Myracle GUI
I think I may have found a bug when analyzing a game between two idiots:[pgn]
1. e4 {0.26/23} g6 {0.74/23} 2. d4 {0.66/21} c6 {0.77/24} 3. Nf3 {0.68/23} d6 {0.72/21}
4. Nc3 {0.64/24} Bg7 {0.58/23} 5. Bc4 {0.51/21} Nf6 {0.60/21} 6. e5 {0.38/23} Bg4 $4 {blunder
7.12/27 (674 cp loss)} (dxe5 7. Nxe5 Nd5 8. O-O O-O 9. Nxd5 cxd5 10. Bb3 Nc6 11. Re1
Nxe5 12. dxe5 d4 13. h4 h5 14. e6 Bxe6 15. Bxe6 fxe6 16. Rxe6 Kf7 17. Qe2 Qd7 18. Re4
e5 19. Bg5 Kg8 20. f4 exf4 21. Bxf4) 7. exf6 {7.05/25} d5 $4 {blunder 10.09/22 (304
cp
loss)} (Bxf6 8. Ne4 Qa5+ 9. c3 Qf5 10. Nxf6+ Qxf6 11. Be2 O-O 12. Bg5 Qf5 13. Be3
e5 14. h3 Bxf3 15. Bxf3 Qf6 16. h4) 8. fxg7 {9.96/20} Rg8 {10.07/19} 9. Be2 {10.29/18}
Qd6 {10.48/18} 10. O-O {10.13/17} Bxf3 {9.96/19} 11. Bxf3 {10.02/19} f6 {10.09/19}
12. Re1 {10.08/20} Kd8 {10.40/20} 13. Qd2 {10.37/21} Qxh2+ $4 {blunder 15.57/25 (520
cp loss)} (Rxg7 14. g3 Nd7 15. Bg2 f5 16. Re2 Nf6 17. f4 Ne4 18. Qd3 Rf7 19. Bh3
g5 20. fxg5 Nxc3 21. Qxc3) 14. Kxh2 $6 {inaccuracy 14.93/23 (64 cp loss)} (14. Kxh2
Rxg7 15. Qh6 Rf7 16. Nxd5 cxd5 17. Bxd5 Nc6 18. Bxf7 Kc7 19. Re6 Kd7 20. Qh3 Kd8
21. Bd2 Nxd4 22. Ba5+ b6 23. Bb4 Nxe6 24. Bxe6 a5) Kd7 $4 {blunder 19.73/25 (480
cp loss)} (Rxg7 15. Qh6 Rf7 16. Nxd5 Nd7 17. Nxe7 a6 18. Qe3 Ne5 19. Nxc6+ bxc6 20. dxe5
Kc8 21. Bg4+ f5 22. Qf4 Kb7) 15. Qh6 $2 {mistake 17.90/22 (183 cp loss)} (15. Qh6
e6 16. Qxh7 Na6 17. Qxg6 Rh8+ 18. Kg1 Rhe8 19. g8=Q Rxg8 20. Qf7+ Kd8 21. Qxg8+ Kc7
22. Qg7+ Kb6 23. Na4+ Ka5 24. Bd2+ Kxa4) g5 $4 {blunder 24.98/24 (708 cp loss)} (a5
16. Bg4+ f5 17. Bxf5+ Kc7 18. Rxe7+ Kb6 19. Qxh7 Nd7 20. Bxd7 Ka7 21. Be3 Ka6 22. Qxg6
Ka7 23. Be6) 16. Qxh7 $6 {inaccuracy 24.43/24 (55 cp loss)} (16. Qxh7 Na6 17. Nxd5
e6 18. Nxf6+ Kc7 19. Rxe6 Nb4 20. Nxg8 Kb6 21. Qf5 Nd3 22. Qxd3 Rb8 23. Nf6 a6 24. Qb3+
Ka7 25. Re7 a5 26. Nd7 Ka8 27. Nb6+ Ka7) Kd6 $4 {blunder +M7/40 (7621 cp loss)} (Na6
17. Nxd5 e6 18. Nxf6+ Kc7 19. Rxe6 Rad8 20. Nxg8 Nc5 21. Nf6 Nd7 22. g8=Q Rxg8 23. Qxd7+
Kb8 24. Re8+ Rxe8 25. Qxe8+ Kc7 26. Qe5+ Kb6) 17. Qxg8 {+M6/38} g4 {+M4/130} 18. Bxg4 {+M5/53}
a5 {+M2/245} 19. Qe6+ {+M3/245} Kc7 {+M3/245} 20. g8=Q {+M4/78} f5 {+M2/245} 21. Bxf5 {+M4/67}
Nd7 {+M3/245} 22. Qxd7+ {+M2/245} Kb6 {+M2/245} 23. Qxa8 {+M1/245} e5 {+M1/245} 24. Qdd8#
1-0[/pgn]
Take a look at the evaluation of white's moves 14, 15 and 16: 14 is a blunder, 15 is a mistake, and 16 is an inaccuracy - but they are not. They are actually the best moves, according to Stockfish 19 which is used to analyze the game (2s per move). Even the suggested moves are the same as white has made... (Build 154)
Thank you very much for myracle - I have not had this much fun playing and fiddling with chess engines in years.
1. e4 {0.26/23} g6 {0.74/23} 2. d4 {0.66/21} c6 {0.77/24} 3. Nf3 {0.68/23} d6 {0.72/21}
4. Nc3 {0.64/24} Bg7 {0.58/23} 5. Bc4 {0.51/21} Nf6 {0.60/21} 6. e5 {0.38/23} Bg4 $4 {blunder
7.12/27 (674 cp loss)} (dxe5 7. Nxe5 Nd5 8. O-O O-O 9. Nxd5 cxd5 10. Bb3 Nc6 11. Re1
Nxe5 12. dxe5 d4 13. h4 h5 14. e6 Bxe6 15. Bxe6 fxe6 16. Rxe6 Kf7 17. Qe2 Qd7 18. Re4
e5 19. Bg5 Kg8 20. f4 exf4 21. Bxf4) 7. exf6 {7.05/25} d5 $4 {blunder 10.09/22 (304
cp
loss)} (Bxf6 8. Ne4 Qa5+ 9. c3 Qf5 10. Nxf6+ Qxf6 11. Be2 O-O 12. Bg5 Qf5 13. Be3
e5 14. h3 Bxf3 15. Bxf3 Qf6 16. h4) 8. fxg7 {9.96/20} Rg8 {10.07/19} 9. Be2 {10.29/18}
Qd6 {10.48/18} 10. O-O {10.13/17} Bxf3 {9.96/19} 11. Bxf3 {10.02/19} f6 {10.09/19}
12. Re1 {10.08/20} Kd8 {10.40/20} 13. Qd2 {10.37/21} Qxh2+ $4 {blunder 15.57/25 (520
cp loss)} (Rxg7 14. g3 Nd7 15. Bg2 f5 16. Re2 Nf6 17. f4 Ne4 18. Qd3 Rf7 19. Bh3
g5 20. fxg5 Nxc3 21. Qxc3) 14. Kxh2 $6 {inaccuracy 14.93/23 (64 cp loss)} (14. Kxh2
Rxg7 15. Qh6 Rf7 16. Nxd5 cxd5 17. Bxd5 Nc6 18. Bxf7 Kc7 19. Re6 Kd7 20. Qh3 Kd8
21. Bd2 Nxd4 22. Ba5+ b6 23. Bb4 Nxe6 24. Bxe6 a5) Kd7 $4 {blunder 19.73/25 (480
cp loss)} (Rxg7 15. Qh6 Rf7 16. Nxd5 Nd7 17. Nxe7 a6 18. Qe3 Ne5 19. Nxc6+ bxc6 20. dxe5
Kc8 21. Bg4+ f5 22. Qf4 Kb7) 15. Qh6 $2 {mistake 17.90/22 (183 cp loss)} (15. Qh6
e6 16. Qxh7 Na6 17. Qxg6 Rh8+ 18. Kg1 Rhe8 19. g8=Q Rxg8 20. Qf7+ Kd8 21. Qxg8+ Kc7
22. Qg7+ Kb6 23. Na4+ Ka5 24. Bd2+ Kxa4) g5 $4 {blunder 24.98/24 (708 cp loss)} (a5
16. Bg4+ f5 17. Bxf5+ Kc7 18. Rxe7+ Kb6 19. Qxh7 Nd7 20. Bxd7 Ka7 21. Be3 Ka6 22. Qxg6
Ka7 23. Be6) 16. Qxh7 $6 {inaccuracy 24.43/24 (55 cp loss)} (16. Qxh7 Na6 17. Nxd5
e6 18. Nxf6+ Kc7 19. Rxe6 Nb4 20. Nxg8 Kb6 21. Qf5 Nd3 22. Qxd3 Rb8 23. Nf6 a6 24. Qb3+
Ka7 25. Re7 a5 26. Nd7 Ka8 27. Nb6+ Ka7) Kd6 $4 {blunder +M7/40 (7621 cp loss)} (Na6
17. Nxd5 e6 18. Nxf6+ Kc7 19. Rxe6 Rad8 20. Nxg8 Nc5 21. Nf6 Nd7 22. g8=Q Rxg8 23. Qxd7+
Kb8 24. Re8+ Rxe8 25. Qxe8+ Kc7 26. Qe5+ Kb6) 17. Qxg8 {+M6/38} g4 {+M4/130} 18. Bxg4 {+M5/53}
a5 {+M2/245} 19. Qe6+ {+M3/245} Kc7 {+M3/245} 20. g8=Q {+M4/78} f5 {+M2/245} 21. Bxf5 {+M4/67}
Nd7 {+M3/245} 22. Qxd7+ {+M2/245} Kb6 {+M2/245} 23. Qxa8 {+M1/245} e5 {+M1/245} 24. Qdd8#
1-0[/pgn]
Take a look at the evaluation of white's moves 14, 15 and 16: 14 is a blunder, 15 is a mistake, and 16 is an inaccuracy - but they are not. They are actually the best moves, according to Stockfish 19 which is used to analyze the game (2s per move). Even the suggested moves are the same as white has made... (Build 154)
Thank you very much for myracle - I have not had this much fun playing and fiddling with chess engines in years.
-
RubiChess
- Posts: 673
- Joined: Fri Mar 30, 2018 7:20 am
- Full name: Andreas Matthies
Re: Myracle GUI
Running a tournament with the problematic engines in build 155 now and everything seems to work as expected.
Good job!
Regards, Andreas
-
mar
- Posts: 3069
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
yes, definitely a bug, I'll fix it in the next build. thanks for reporting and glad you like the GUIjjh13 wrote: ↑Mon Oct 26, 2026 6:03 am I think I may have found a bug when analyzing a game between two idiots:
Take a look at the evaluation of white's moves 14, 15 and 16: 14 is a blunder, 15 is a mistake, and 16 is an inaccuracy - but they are not. They are actually the best moves, according to Stockfish 19 which is used to analyze the game (2s per move). Even the suggested moves are the same as white has made... (Build 154)
Thank you very much for myracle - I have not had this much fun playing and fiddling with chess engines in years.