Bug 1151300 - [RFE][glance]: Reload configuration files on SIGHUP signal
Summary: [RFE][glance]: Reload configuration files on SIGHUP signal
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-glance
Version: unspecified
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: Upstream M3
: 7.0 (Kilo)
Assignee: Flavio Percoco
QA Contact: nlevinki
URL: https://blueprints.launchpad.net/glan...
Whiteboard: upstream_milestone_kilo-3 upstream_de...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-10-10 04:06 UTC by RHOS Integration
Modified: 2016-04-26 18:50 UTC (History)
6 users (show)

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.
Clone Of:
Environment:
Last Closed: 2015-08-05 13:14:37 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2015:1548 0 normal SHIPPED_LIVE Red Hat Enterprise Linux OpenStack Platform Enhancement Advisory 2015-08-05 17:07:06 UTC

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


Note You need to log in before you can comment on or make changes to this bug.