ryanzidago
Memory leaks caused by `:error_logger` process?
Hi all,
Heroku keeps killing the application because the memory quota is vastly exceeded (i.e. 220% of the quota is used). I’m trying to find the root cause of this. The application use the PhoenixLiveDashboard so I could inspect the processes using the most memory …
As you can see in the following picture, there is an :error_logger process that is using more than 1 GB of memory. Surely it isn’t normal right?
How can I find which piece of my code is responsible for spawning the :error_logger process and why is it accumulating so much data?
Could it be due to some Telemetry misconfiguration in the application?
I see here that Telemetry uses an error_logger module. Also I see that Elixir’ Logger uses this error_logger module by default here.
Thanks!
Most Liked
hauleth
Seems like bug in Rollbax, not error_logger. Try to drop that library for test. If it help, then you have found culprit (it will probably also make error_logger process to go away). In general I prefer Sentry for error logging, so if you can switch, then it may be the interesting solution for you.
hauleth
Both Elixir and Telemetry use error_logger only if you are using Erlang 20.x or earlier. In other situations it is not started unless there is other component that registers error_logger:add_report_handler/{1,2}.
If you are using OTP 20.x or earlier, then this process is started as part of kernel application and you cannot disable it (as this could cause you to lose information about processes that have failed).
ryanzidago
Disabling the enable_crash_reports “fixed” the issue because it didn’t start the error_logger process.
error_logger is actually quite known to cause memory leaks
There’s a whole section about this process in the Erlang in Anger book.
If I have some free time, I’ll try to fork Rollbax and replace error_logger with either logger or lager, because I would still like to have those crash reports.
hauleth
I highly suggest taking a look at Sentry. It always felt “cleaner” to me.








