Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1151300

Summary: [RFE][glance]: Reload configuration files on SIGHUP signal
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: openstack-glanceAssignee: Flavio Percoco <fpercoco>
Status: CLOSED ERRATA QA Contact: nlevinki <nlevinki>
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: dnavale, eglynn, fpercoco, markmc, scohen, yeylon
Target Milestone: Upstream M3Keywords: FutureFeature, OtherQA
Target Release: 7.0 (Kilo)   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/glance/+spec/sighup-conf-reload
Whiteboard: upstream_milestone_kilo-3 upstream_definition_approved upstream_status_implemented
Fixed In Version: openstack-glance-2015.1.0-6.el7ost Doc Type: Enhancement
Doc Text:
With this update, it is now possible to dynamically reload the Image service configuration settings by sending a SIGHUP signal to the 'glance-*' process. This signal will ensure the process re-reads the configuration file and load any new configurations. As a result, there is no need to restart the entire Image service to apply the configuration changes.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-08-05 13:14:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description RHOS Integration 2014-10-10 04:06:56 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/glance/+spec/sighup-conf-reload.

Description:

In production environment, administrator modifies the glance-api.conf configuration parameters like filesystem_store_datadirs when the storage is almost full to add more capacity by adding more disks, or to increase the number of workers or log configuration etc. then he/she need to restart the glance service explicitly to make these changes effective. Restarting service would break users connected to it which is not good in users point of view.

Add the ability to dynamically change configuration settings of a running glance server with no impact to service.

A running glance server consists of a parent/master process and one or more child/worker processes.

On receipt of a SIGHUP signal the master process will:

- reload the configuration
- send a SIGHUP to the original workers
- start new workers with the new configuration
- its listening socket will not be closed

On receipt of a SIGHUP signal each original worker process will:

- close the listening socket so as not to accept new requests
- complete any in-flight requests
- exit

This approach is based on nginx's behaviour and avoids some of the disadvantages of the current oslo's Launcher reload:

- Race conditions: Launcher does not shutdown eventlet cleanly, existing
  requests can fail.
- If all workers are busy there can be a lengthy delay when new requests
  are not processed.
- Long lived pre-SIGHUP idle client connections can stall request
  processing indefinitely.
- Not all parameters can be changed, eg number of workers.
- The wsgi pipeline cannot be changed, eg to enable caching.


Note:
The following eventlet change is required:
https://github.com/eventlet/eventlet/pull/138/files

Specification URL (additional information):

None

Comment 6 errata-xmlrpc 2015-08-05 13:14:37 UTC
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/RHEA-2015:1548