Read the statement by Michael Teeuw here.
"Out of memory" issues - where do I begin?
-
UPDATE: At this point, I’m closing in on a full week of operating two mirrors without issue. I’ve changed to running Chromium instead of Electron and it’s working well all around. Here are some details of the operation in case it’s useful:
- Pi 3 Model B (one UK, one China)
- MM 2.12.0
- Native modules configured: WeatherForecast, CurrentWeather (both weather modules set to different locations as the two Pi’s are in different locations), clock, calendar (2 instances, 2 different Google calendars), alert, updatenotification
- Third-party modules: MMM-ImagesPhotos (@sdetweil version)
- Customizations:
-
- Modified the WeatherForecast module according to this thread to get 5 days of forecast data back after recent MM update: https://forum.magicmirror.builders/topic/13187/weatherforecast-showing-only-two-days/31?_=1601303807634
-
- Converted to using Chromium instead of Electron locally as detailed in this thread
-
- Chromium update / notice disabled via the step from a couple of posts prior to this one
-
- Allow connections from local LAN addresses
- Pi connected to a smart plug that turns on each day at 7AM, cron job to execute “init 0” each day at 11PM, smart plug turns off at 11:05PM
Prior to successfully switching over to Chromium, the devices would crash at least once every other day (at least one of them would crash during a 48 hour window), although it was much more common to see each one crash multiple times per day. There was no consistency to which one would crash, why, when, etc. The “crash” in question was a black screen on the mirror and no visible info being output although the mouse cursor would sometimes appear. I wrote a cron job that would run every five minutes, look up the location of the pm2 error logs, check to see if there was an “out of memory” error in the log, and do a restart of MM if there was (the restart consisted of shut down, log flush, and start). This job ran every five minutes and would silently exit if there was no error as the mirror was running ok.
Since the switchover, I have seen zero crashes on either device in almost seven days of operation.
Electron has been discussed ad nauseum as having a variety of shortcomings, bugs, issues, etc. - especially in the old version being used with MM. At this point, I have to wonder why it’s still not only the default but the ‘only’ browser that’s really discussed for use with MM. It would seem that it’s time to either forklift an upgrade to it within MM or switch to something else (at a minimum, at least provide a well-documented alternative).
I’m grateful to @sdetweil for his assistance with this, especially since it really took a calendar year almost to get to a point where it’s seemingly working as expected now.
-
@ember1205 sometimes upgrading one part causes forced upgrades to others and the collection brings more problems…
-
@sdetweil I can appreciate that - I work for a software company, and know about inter-dependencies and the headaches they can cause.
MM is, in a very basic sense, a web server. Electron is a web browser. There shouldn’t be inter-dependencies between a web server and browser, and that seems to be apparent with Chromium not having an issue running against the MM server. So, I would hope that Electron could be brought forward or at least Chromium be documented as an solid alternative.
-
@ember1205 I got us moved from V3 to V6… we need to add another cycle… it didn’t work with V7 last time.
-
@sdetweil v10 is out and listed as “stable”.
-
@ember1205 yeh, that and a quarter!!.. V7 was stable when we tried it last year too… running on PI is a whole different thing… they test on x86.
-
Update… 30 full days since my last post about stability and have not experienced a single crash on either mirror. So, Electron is definitely the source of the problem.
Thank you to @sdetweil for the assistance in swapping over to Chromium and getting things to a stable state.
-
@ember1205 thank you for the feedback… there is a proposal to move to Electron V10
-
Wanted to post what is likely a ‘final update’ to this thread. I was running for literally weeks if not months with zero issues. I even let the system run for at least a month with the “you’re out of date” banner across the top and not one crash.
I updated the mirror and it reverted itself back to using Electron (that in itself is infuriating) and it’s crashing again. So, not only is Electron the problem but it’s STILL a problem.
I’ve reverted my mirror back to the outdated code and will do another update and not allow it to change back to Electron so that it can run without crashing!
-
@ember1205 what do you mean ‘updated’? if u just did a git pull, then u updated to the same level of electron
new release coming this week (1/1) which moves up to electron 8. 5.3
if u want to test it today, use the develop branch
both still use only electron, you can reinsert run-start.sh to use chromium