I’ve upgraded to 2.4.1 and using the suggested OpenGL driver and all is well. Decided to play with some new modules and enabled the MMM-EyeCandy and it also worked well… for a while. I found that with a particular image selected (37), it would work, but go a little glitchy - stuttering on animations. And then after something like 10 minutes the screen would freeze. And then a while later it might recover, or it might just switch to a black screen. Weird. With a bit of debug, I found that the electron process that was running the animation would consume all the memory until eventually the OOM killer would kill it. At which point, the X server would just show nothing until magic mirror was restarted. I don’t know if this is a previous known problem with eye candy, a problem with using the OpenGL driver, or 2.4.1 of MM with it’s usage of updated electron.
In terms of logged errors, there’s obviously the oom killer log showing that it killed electron. There are logged errors in the MM logs, but they are from a different electron processes to the one that was running out of memory:
- the unhandled promise rejection errors that others have asked about
- and gles2_cmd_decoder errors.
Both of those errors were from other electron processes to the eyecandy (is there an easy way to associate electron PIDs with MMM modules? I’m using guesswork…)
Anyhow, I’ve disabled the eye candy module for now and everything works fine, but curious as to how to debug this more, or how to protect things better (e.g. can electron provide simple ulimit controls for the subprocesses? Perhaps something for pm2 configuration?)