Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure out of memory events are raised before exiting the process #1341

Merged
merged 1 commit into from
Oct 27, 2023

Conversation

jameshulse
Copy link
Contributor

Problem

I want to introduce extra logging into our application to log when a supervisor (or master) runs out of memory. I was struggling to get these events to fire despite lowering the memory limits to very small amounts.

From my testing it turns out that the $master->terminate(12); call will eventually call exitProcess on the Supervisor which calls to the system exit function. This means that the PHP process ends immediately and the line which raises the event is never hit.

image

Terminate calls exit

image

exit in turn calls exitProcess

Solution

The solution seems to be simply raising the event before terminating the process.

Other issues

It is also worth raising that the $supervisor instance isn't serialisable as it holds a reference to a Process instance. This meant that my first attempt to handle these events on a queue failed.

@taylorotwell taylorotwell merged commit 6e2b0bb into laravel:5.x Oct 27, 2023
13 checks passed
@jameshulse jameshulse deleted the fix-memory-events branch October 29, 2023 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants