Bug #33973
closedThe Installer does not restart foreman.service when changing puma configuration
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=2025760
Initial Setup: puma configured and running with 4 workers and 4 workers per thread
- grep -n puma /etc/foreman-installer/scenarios.d/satellite-answers.yaml
122: foreman_service_puma_threads_min:
123: foreman_service_puma_threads_max: 4
124: foreman_service_puma_workers: 4
- ps aux | grep -v grep | grep -e USER -e puma
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
foreman 3472 0.6 2.2 951716 462672 ? Ssl 18:08 0:47 puma 5.3.2 (unix:///run/foreman.sock) [foreman]
foreman 4060 0.0 3.1 1141940 648704 ? Sl 18:09 0:05 puma: cluster worker 0: 3472 [foreman]
foreman 4061 0.0 3.1 1139888 648544 ? Sl 18:09 0:06 puma: cluster worker 1: 3472 [foreman]
foreman 4064 0.1 3.0 1119804 618152 ? Sl 18:09 0:12 puma: cluster worker 2: 3472 [foreman]
foreman 4065 0.0 3.0 1143428 631664 ? Sl 18:09 0:05 puma: cluster worker 3: 3472 [foreman]
Reproduction steps:
1. change puma configuration foreman_service_threads_max and/or foreman_service_puma_workers.
- satellite-installer --foreman-foreman-service-puma-workers 5 --foreman-foreman-service-puma-threads-max 5 --verbose-log-level=info
2. check # of puma worker processes running is still 4 after installer has completed:
- ps aux | grep -v grep | grep -e USER -e puma
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
foreman 8148 11.9 2.2 951776 462376 ? Ssl 20:21 0:43 puma 5.3.2 (unix:///run/foreman.sock) [foreman]
foreman 8219 1.2 3.1 1150208 649108 ? Sl 20:22 0:03 puma: cluster worker 0: 8148 [foreman]
foreman 8223 0.0 2.2 978532 456372 ? Sl 20:22 0:00 puma: cluster worker 1: 8148 [foreman]
foreman 8227 0.0 2.2 978532 456260 ? Sl 20:22 0:00 puma: cluster worker 2: 8148 [foreman]
foreman 8236 0.0 2.2 978532 456492 ? Sl 20:22 0:00 puma: cluster worker 3: 8148 [foreman]
3. restart foreman.service: # systemctl restart foreman.service
4. Observe there are now 5 puma worker processes running:
- ps aux | grep -v grep | grep -e USER -e puma
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
foreman 8857 76.2 2.2 947880 457108 ? Ssl 20:28 0:44 puma 5.3.2 (unix:///run/foreman.sock) [foreman]
foreman 8883 1.2 2.1 976688 450764 ? Sl 20:28 0:00 puma: cluster worker 0: 8857 [foreman]
foreman 8886 1.1 2.1 976688 450628 ? Sl 20:28 0:00 puma: cluster worker 1: 8857 [foreman]
foreman 8894 1.1 2.1 976688 450616 ? Sl 20:28 0:00 puma: cluster worker 2: 8857 [foreman]
foreman 8900 1.1 2.1 976688 450956 ? Sl 20:28 0:00 puma: cluster worker 3: 8857 [foreman]
foreman 8902 1.2 2.1 976688 450748 ? Sl 20:28 0:00 puma: cluster worker 4: 8857 [foreman]
Further information:
You can observe that foreman.socket was restarted while foreman.service was not restarted:
2021-11-22 20:21:22 [DEBUG ] [configure] Executing: '/bin/systemctl restart -- foreman.socket'
2021-11-22 20:21:23 [INFO ] [configure] /Service[foreman.socket]: Triggered 'refresh' from 1 event
2021-11-22 20:21:23 [DEBUG ] [configure] /Service[foreman.socket]: The container Class[Foreman::Service] will propagate my refresh event
2021-11-22 20:21:23 [DEBUG ] [configure] /Service[foreman.socket]: Evaluated in 1.36 seconds
2021-11-22 20:21:23 [DEBUG ] [configure] /Service[foreman]: Starting to evaluate the resource (1592 of 2025)
2021-11-22 20:21:23 [DEBUG ] [configure] Executing: '/bin/systemctl is-active -- foreman'
2021-11-22 20:21:23 [DEBUG ] [configure] Executing: '/bin/systemctl is-enabled -- foreman'
2021-11-22 20:21:23 [DEBUG ] [configure] Executing: '/bin/systemctl show --property=NeedDaemonReload -- foreman'
2021-11-22 20:21:23 [DEBUG ] [configure] Executing: '/bin/systemctl daemon-reload'
2021-11-22 20:21:23 [DEBUG ] [configure] Executing: '/bin/systemctl unmask -- foreman'
2021-11-22 20:21:23 [DEBUG ] [configure] Executing: '/bin/systemctl start -- foreman'
2021-11-22 20:22:08 [DEBUG ] [configure] Executing: '/bin/systemctl is-enabled -- foreman'
2021-11-22 20:22:08 [INFO ] [configure] /Stage[main]/Foreman::Service/Service[foreman]/ensure: ensure changed 'stopped' to 'running'
2021-11-22 20:22:08 [DEBUG ] [configure] /Service[foreman]: The container Class[Foreman::Service] will propagate my refresh event
2021-11-22 20:22:08 [DEBUG ] [configure] /Service[foreman]: Unscheduling refresh on Service[foreman]
2021-11-22 20:22:08 [DEBUG ] [configure] /Service[foreman]: Evaluated in 44.66 seconds