Smart proxy stops listening on HTTPS port after log rotate
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1273785
Description of problem:
The foreman-proxy stops listening on port 9090 after the logrotate was performed:
[crash] root@li-lc-1017:/etc/logrotate.d# grep '04:28' /var/log/cron
Oct 21 04:28:01 li-lc-1017 anacron31376: Job `cron.daily' started
Oct 21 04:28:01 li-lc-1017 run-parts(/etc/cron.daily): starting logrotate
Oct 21 04:28:14 li-lc-1017 run-parts(/etc/cron.daily): finished logrotate
Oct 21 04:28:14 li-lc-1017 run-parts(/etc/cron.daily): starting makewhatis.cron
Oct 21 04:28:18 li-lc-1017 run-parts(/etc/cron.daily): finished makewhatis.cron
Oct 21 04:28:18 li-lc-1017 run-parts(/etc/cron.daily): starting mlocate.cron
[crash] root@li-lc-1017:/etc/logrotate.d# ls
l /var/log/foreman-proxy/. 1 foreman-proxy foreman-proxy 0 Oct 19 12:22 access.log
rw-r--r-. 1 foreman-proxy foreman-proxy 0 Oct 21 04:28 proxy.log rw-r--r-. 1 foreman-proxy foreman-proxy 1366 Oct 21 04:28 proxy.log-20151021.gz
[crash] root@li-lc-1017:/var/log/foreman-proxy# ps aux | grep proxy
root 922 0.0 0.0 103308 832 pts/0 S+ 08:24 0:00 grep proxy
493 1378 0.2 0.1 162960 54032 ? SNl 04:28 0:30 ruby /usr/share/foreman-proxy/bin/smart-proxy
[crash] root@li-lc-1017:/etc/logrotate.d# lsof -P -n | grep 'foreman-proxy.*TCP'
ruby 1378 foreman-proxy 5u IPv4 10120344 0t0 TCP *:8000 (LISTEN)
Checking the logrotate script is does a 'service foreman-proxy condrestart'.
I think that the startup might be too quickly after the stopping so the port 9090 is not released yet for re-use.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Force logrotate logrotate -f /etc/logrotate.conf
Foreman-proxy is not listening the port 9090
Foreman-proxy is listening again on the port 9090
#2 Updated by Dmitri Dolguikh about 3 years ago
Apparently the issue is still there. I don't think adding a delay between launching http and https apps is a great approach (slows down startup, 5 seconds may not be sufficient time to for the process to release the socket). Updating 'sigterm' handler to stop http and https apps and then exit smart-proxy would be my preferred approach.
#4 Updated by Dominic Cleal about 3 years ago
- Subject changed from Capsule stops listening on 9090 after log rotate to Smart proxy stops listening on HTTPS port after log rotate
- Category set to Core
- Priority changed from High to Normal
Or provide another signal handler just for rolling logs, avoiding the need to restart at all.