Red Hat Bugzilla – Bug 1452772
[RFE] Passenger graceful killer cron job
Last modified: 2018-10-16 11:28:08 EDT
Passenger open-source version does support process restarting on memory threshold. It looks like passenger have reserved SIGUSR1 for graceful restart. A cron job could do the job easily: https://gist.github.com/kascote/366441 http://mensfeld.pl/2012/08/simple-rubyrails-passenger-memory-consumption-limit-monitoring/
Created from redmine issue http://projects.theforeman.org/issues/19496
Upstream bug assigned to lzap@redhat.com
*** Bug 1452771 has been marked as a duplicate of this bug. ***
*** Bug 1452665 has been marked as a duplicate of this bug. ***
Thanks, is this meant for 6.3 or 6.2? This is easily backportable, just a script and packaging change.
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/19496 has been resolved.
Dev, can we get some assistance on how to reproduce pushing passenger into the failed state.
Dumb approach, set the memory limit in this script to 400 MB, restart Satellite httpd and run watch passenger-status Click in the UI randomly, do some actions via CLI/API to increase memory consumption above 400 MB and then wait until the script gets executed from cron (or execute it). It should restart one process per execution. The config is /etc/passenger-recycler.yaml and value you want to change is MAX_PRIV_RSS_MEMORY. Here is an example file: https://github.com/swapab/foreman_maintain/blob/302581759bf5bc31de962f6cc5ccecb889c84748/config/passenger-recycler.yaml It looks like for some reason this YAML file is not being distributed with foreman-maintain, likely a bug.
Correction of the YAML file link: https://github.com/theforeman/foreman_maintain/blob/master/config/passenger-recycler.yaml Filed BZ#1630958 for the missing YAML file.
*** Bug 1630958 has been marked as a duplicate of this bug. ***
Upstream bug assigned to inecas@redhat.com
adding sat-maintenance flag as the above pr deals with foreman-maintain
Verified on Satellite 6.4 snap 23, expected files are present: rpm -ql rubygem-foreman_maintain-0.2.10-1.el7sat.noarch | grep passenger /etc/passenger-recycler.yaml /usr/bin/passenger-recycler /usr/share/gems/gems/foreman_maintain-0.2.10/bin/passenger-recycler /usr/share/gems/gems/foreman_maintain-0.2.10/config/passenger-recycler.yaml /usr/share/gems/gems/foreman_maintain-0.2.10/definitions/procedures/passenger_recycler.rb With setup suggested in comment #8, running passenger-recycler: ... Terminating 15319 (started 08:22:44) with private RSS size of 459 MB Process successfully 15319 terminated ... So the custom memory limit is respected. The cron task is not set automatically with rpm installation, however this is intended, as per discussion with inecas
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2018:2927