UNSOLVED Electron Crashing after update to 2.21.0 with PM2
After updating my MagicMirror to version 2.21.0 it seems that Electron is crashing when using PM2 with the following error at crash (from pm2 logs):
0|mm | /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGTERM
After the restart there seems to be a large number of errors thrown, though with a repeating pattern of the following:
0|mm | [30696:1006/101030.900201:ERROR:angle_platform_impl.cc(43)] renderergl_utils.cpp:2519 (CheckError): GL call functions->texStorage2D(ToGLenum(type), static_cast<GLsizei>(levels), texStorageFormat.internalFormat, size.width, size.height) generated error 0x00000505 in ../../third_party/angle/src/libANGLE/renderer/gl/TextureGL.cpp, setStorage:1052. 0|mm | [30696:1006/101030.901706:ERROR:shared_context_state.cc(811)] SharedContextState context lost via Skia OOM. 0|mm | [30696:1006/101030.903252:ERROR:gpu_service_impl.cc(990)] Exiting GPU process because some drivers can't recover from errors. GPU process will restart shortly. 0|mm | [19587:1006/101030.932806:ERROR:command_buffer_proxy_impl.cc(329)] GPU state invalid after WaitForGetOffsetInRange. 0|mm | [19587:1006/101030.940181:ERROR:gpu_process_host.cc(974)] GPU process exited unexpectedly: exit_code=8704 0|mm | MESA-LOADER: failed to retrieve device information 0|mm | MESA-LOADER: failed to retrieve device information 0|mm | MESA-LOADER: failed to retrieve device information
Now, if I run MagicMirror by using
npm startwhile in the
~/MagicMirrordirectory, it seems to stay up. Hoping someone has some insight on this. I can easily manually start the system, but would rather not have to every time.
@pattanner92 how did you upgrade? manual or use my automated scripts?
which os is this?
show outout of
uname -a lsb_release -a
Output of first command is:
Linux raspberrypi 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l GNU/Linux
Output of second command is:
No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 10 (buster) Release: 10 Codename: buster
I did so a manual upgrade. Though I typically do that without running into too many issues.
Still seems to crash. This is how I have configured my pm2 start script:
cd ~/MagicMirror export ELECTRON_DISABLE_GPU=1 DISPLAY=:0 npm start
@pattanner92 sorry two more
u are running on 32 bit buster, which is ok
on some armv7l device, pi3, 4, or pi0w2
I am running on a Raspberry Pi B3+
EDIT: I was digging while cleaning up pm2 so it didn’t display my old script. I noticed that the
~/MagicMirror/installerswas indeed missing
export ELECTRON_DISABLE_GPU=1. Adding that back to the script seems to keep it stable. Still wondering if this is an Electron version issue.
No dice. Here are the errors I am seeing in the logs - I pulled only the errors to see if I caught them all. Here is what I am seeing at the exit event:
0|mm | [25978:1009/112505.776458:ERROR:zygote_communication_linux.cc(275)] Failed to send GetTerminationStatus message to zygote 0|mm | [25978:1009/112505.812741:ERROR:zygote_communication_linux.cc(275)] Failed to send GetTerminationStatus message to zygote 0|mm | [25978:1009/112505.848727:ERROR:network_service_instance_impl.cc(470)] Network service crashed, restarting service. 0|mm | [25978:1009/112505.880738:ERROR:gpu_process_host.cc(968)] GPU process launch failed: error_code=1002 0|mm | [25978:1009/112505.897587:ERROR:gpu_process_host.cc(968)] GPU process launch failed: error_code=1002 0|mm | [25978:1009/112505.917812:ERROR:gpu_process_host.cc(968)] GPU process launch failed: error_code=1002 0|mm | [25978:1009/112505.942511:ERROR:gpu_process_host.cc(968)] GPU process launch failed: error_code=1002 0|mm | [25978:1009/112505.959337:ERROR:gpu_process_host.cc(968)] GPU process launch failed: error_code=1002
And later in the restart process I saw these errors:
0|mm | [09.10.2022 11:25.36.393] [ERROR] 0|mm | (node:26362) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. 0|mm | (Use `electron --trace-deprecation ...` to show where the warning was created)
I did go in and check for the line
export ELECTRON_DISABLE_GPU=1in the startup script
mm.shand it is there. I did have two startup scripts (one that was created before your script was a a thing) and made sure it was there in both as I wasn’t sure which pm2 was using. The original is out in the home folder - I made a backup and then ran your pm2 setup script. While it seemed to reconfigure pm2 to use the script in
~/MagicMirror/installersit still crashes. Figured I would try that in case something was walking over itself.
Could this be an Electron version issue?
@pattanner92 the buffer thing is a warning, but not our code. nothing we can do
the gpu errors are concerning, because u have gpu use turned off.
do u know what driver is being used in /boot/config.txt, like this