Proposal for using Launcher/ProcessLauncher for launching services

Registered by Abhishek Kekane

Currently other OpenStack projects like nova, cinder, keystone etc. are using oslo-incubator service framework to launch the services. Similar to these projects glance should also use this service framework to launch the services.

As of now when SIGHUP signal is sent to glance-api parent process, it calls the callback handler and then throws OSError. The OSError is thrown because os.wait system call was interrupted due to SIGHUP callback handler. As a result of this parent process closes the server socket. All the child processes also gets terminated without completing existing api requests because the server socket is already closed and the glance service fails to restart.

Ideally when SIGHUP signal is received by the glance-api process, it should process all the pending requests and then restart the glance-api service.

If oslo-incubator's common service framework is used in glance then it will handle service restart on ‘SIGHUP’ signal properly.

The main aim of using Launcer/Process Launcher framework in glance is to use the feature of reloading the Api/Registry configuration files without restarting the Api/Registry service.

The parameters like filesystem_store_datadir, filesystem_store_datadirs can easily reloaded with the help of SIGHUP signal without restarting the service.

For example:
In production environment, when the storage is almost full administrator will add more capacity by adding more disks, then modify the glance-api.conf and finally he/she would want to reload the configuration changes without restarting service as restarting service would break users connected to it abruptly.

Blueprint information

Status:
Complete
Approver:
Mark Washenberger
Priority:
Undefined
Drafter:
Abhishek Kekane
Direction:
Needs approval
Assignee:
Abhishek Kekane
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Nikhil Komawar

Related branches

Sprints

Whiteboard

nikhil_k: update 2015-03-05:
superseded by https://blueprints.launchpad.net/glance/+spec/sighup-conf-reload

Gerrit topic: https://review.openstack.org/#q,topic:bp/use-common-service-framework,n,z

Addressed by: https://review.openstack.org/117135
    Sync service module from oslo-incubator

Addressed by: https://review.openstack.org/117191
    Made provision for glance service to use Launcher

Addressed by: https://review.openstack.org/117988
    Made provision for glance service to use Launcher

(?)

Work Items

Work items:
Sync oslo-incubator service module in glance: DONE
Use Launcer/ProcessLauncher to launch the services: DONE
Make provision to handle SIGHUP and SIGTERM signals independently: DONE

This blueprint contains Public information 
Everyone can see this information.