Openstack services should support SIGHUP signal
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Invalid
|
Undecided
|
Unassigned | ||
Glance |
Fix Released
|
Medium
|
Abhishek Kekane | ||
Murano |
Confirmed
|
Medium
|
Alexander Tivelkov | ||
OpenStack Compute (nova) |
Fix Released
|
Wishlist
|
Davanum Srinivas (DIMS) | ||
OpenStack Heat |
Fix Released
|
Medium
|
Unassigned | ||
OpenStack Identity (keystone) |
Invalid
|
Wishlist
|
Unassigned | ||
Sahara |
Fix Released
|
Medium
|
Sergey Lukjanov | ||
neutron |
Fix Released
|
Wishlist
|
Unassigned | ||
oslo-incubator |
Invalid
|
Undecided
|
Davanum Srinivas (DIMS) | ||
oslo.config |
Fix Released
|
Undecided
|
Unassigned | ||
oslo.log |
Fix Released
|
Undecided
|
Unassigned | ||
oslo.service |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
1)In order to more effectively manage the unlinked and open (lsof +L1) log files descriptors w/o restarting the services, SIGHUP signal should be accepted by every Openstack service.
That would allow, e.g. logrotate jobs to gracefully HUP services after their log files were rotated. The only option we have for now is to force the services restart, quite a poor option from the services continuous accessibility PoV.
Note: according to http://
SIGHUP
... Many daemons will reload their configuration files and reopen their logfiles instead of exiting when receiving this signal.
Currently Murano and Glance are out of sync with Oslo SIGHUP support.
There is also the following issue exists for some of the services of OS projects with synced SIGHUP support:
2)
heat-api-cfn, heat-api, heat-api-
2.1) modify <python-
def _sighup_
+ LOG.warning("SIGHUP is supported: {0}".format(
return hasattr(signal, 'SIGHUP')
2.2) restart service foo-service-name and check logs for "SIGHUP is supported", if service really supports it, the appropriate messages would be present in the logs.
2.3) issue kill -HUP <foo-service-pid> and check logs for "SIGHUP is supported" and "Caught SIGHUP", if service really supports it, the appropriate messages would be present in the logs. Besides that, the service should remain started and its main thread PID should not be changed.
e.g.
2.a) heat-engine supports HUPing:
#service openstack-
<132>Apr 11 14:03:48 node-3 heat-heat.
2.b)But heat-api don't know how to HUP:
#service openstack-heat-api restart
<134>Apr 11 14:06:22 node-3 heat-heat.api INFO: Starting Heat ReST API on 0.0.0.0:8004
<134>Apr 11 14:06:22 node-3 heat-eventlet.
2.c) HUPing heat-engine is OK
#pid=$(cat /var/run/
16512
<134>Apr 11 14:12:15 node-3 heat-heat.
<132>Apr 11 14:12:15 node-3 heat-heat.
<134>Apr 11 14:12:15 node-3 heat-heat.
service openstack-
openstack-
2.d) HUPed heat-api is dead now ;(
#kill -HUP $(cat /var/run/
(no new logs)
# service openstack-heat-api status
openstack-heat-api dead but pid file exists
3)
nova-cert, nova-novncproxy, nova-objectstore, nova-consoleauth, nova-scheduler - unlike to case 2, after kill -HUP <foo-service-pid> command was issued, there would be a "Caught SIGHUP" message in the logs, BUT the associated service would have got dead anyway. Instead, the service should remain started and its main thread PID should not be changed (similar to the 2.c case).
So, looks like there are a lot of things still should be done to ensure POSIX standards abidance in Openstack :-)
description: | updated |
description: | updated |
Changed in heat: | |
status: | New → Confirmed |
Changed in nova: | |
status: | New → Confirmed |
Changed in keystone: | |
status: | New → Confirmed |
Changed in murano: | |
importance: | Undecided → Medium |
milestone: | none → 0.6 |
Changed in murano: | |
importance: | Medium → Low |
Changed in murano: | |
milestone: | 0.6 → juno-1 |
milestone: | juno-1 → none |
Changed in keystone: | |
importance: | Undecided → Low |
Changed in fuel: | |
assignee: | nobody → MOS Oslo (mos-oslo) |
milestone: | none → 5.1 |
Changed in fuel: | |
importance: | Undecided → Low |
Changed in fuel: | |
status: | New → Confirmed |
Changed in murano: | |
assignee: | nobody → Igor Yozhikov (iyozhikov) |
milestone: | none → juno-2 |
summary: |
- Openstack services should support SIGHUP signal + [mos] Openstack services should support SIGHUP signal |
no longer affects: | murano |
summary: |
- [mos] Openstack services should support SIGHUP signal + Openstack services should support SIGHUP signal |
no longer affects: | fuel |
Changed in heat: | |
assignee: | nobody → Jeff Peeler (jpeeler-z) |
Changed in nova: | |
importance: | Undecided → Wishlist |
Changed in glance: | |
importance: | Undecided → Medium |
milestone: | none → kilo-1 |
assignee: | nobody → Tushar Patil (tpatil) |
Changed in glance: | |
assignee: | Tushar Patil (tpatil) → Abhishek Kekane (abhishek-kekane) |
Changed in keystone: | |
importance: | Low → Wishlist |
Changed in heat: | |
milestone: | none → juno-rc1 |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | juno-rc1 → 2014.2 |
Changed in glance: | |
milestone: | kilo-1 → kilo-2 |
Changed in sahara: | |
status: | New → Confirmed |
assignee: | nobody → Andrew Lazarev (alazarev) |
Changed in sahara: | |
milestone: | none → kilo-2 |
importance: | Undecided → High |
Changed in sahara: | |
status: | Confirmed → In Progress |
Changed in glance: | |
milestone: | kilo-2 → kilo-3 |
Changed in sahara: | |
milestone: | kilo-2 → kilo-3 |
Changed in neutron: | |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
Changed in sahara: | |
importance: | High → Medium |
status: | In Progress → Confirmed |
Changed in nova: | |
assignee: | nobody → Davanum Srinivas (DIMS) (dims-v) |
Changed in oslo-incubator: | |
assignee: | nobody → Davanum Srinivas (DIMS) (dims-v) |
Changed in murano: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
milestone: | none → kilo-3 |
assignee: | nobody → Andrew Pashkin (apashkin) |
Changed in neutron: | |
assignee: | nobody → Elena Ezhova (eezhova) |
Changed in heat: | |
assignee: | nobody → Anant Patil (ananta) |
Changed in neutron: | |
status: | Confirmed → In Progress |
Changed in sahara: | |
milestone: | kilo-3 → liberty-1 |
Changed in heat: | |
milestone: | kilo-3 → liberty-1 |
Changed in murano: | |
milestone: | kilo-3 → none |
Changed in glance: | |
milestone: | kilo-3 → kilo-rc1 |
Changed in heat: | |
assignee: | Anant Patil (ananta) → nobody |
status: | Confirmed → Fix Committed |
Changed in neutron: | |
milestone: | none → liberty-1 |
Changed in murano: | |
milestone: | none → kilo-rc1 |
assignee: | Andrew Pashkin (apashkin) → nobody |
milestone: | kilo-rc1 → liberty-1 |
Changed in nova: | |
milestone: | none → kilo-rc1 |
status: | Fix Committed → Fix Released |
Changed in glance: | |
milestone: | none → kilo-rc1 |
status: | Fix Committed → Fix Released |
Changed in glance: | |
milestone: | kilo-rc1 → 2015.1.0 |
Changed in nova: | |
milestone: | kilo-rc1 → 2015.1.0 |
Changed in sahara: | |
milestone: | liberty-1 → liberty-2 |
Changed in neutron: | |
milestone: | liberty-1 → liberty-2 |
Changed in heat: | |
status: | Fix Committed → Fix Released |
Changed in sahara: | |
assignee: | Andrew Lazarev (alazarev) → Sergey Lukjanov (slukjanov) |
Changed in murano: | |
milestone: | liberty-1 → liberty-2 |
Changed in murano: | |
assignee: | nobody → Ekaterina Chernova (efedorova) |
importance: | Medium → Wishlist |
Changed in murano: | |
status: | Confirmed → In Progress |
Changed in sahara: | |
milestone: | liberty-2 → liberty-3 |
Changed in neutron: | |
milestone: | liberty-2 → liberty-3 |
Changed in sahara: | |
status: | Confirmed → In Progress |
Changed in murano: | |
milestone: | liberty-2 → liberty-3 |
Changed in murano: | |
status: | In Progress → Confirmed |
assignee: | Ekaterina Chernova (efedorova) → nobody |
Changed in neutron: | |
status: | In Progress → Fix Committed |
status: | Fix Committed → In Progress |
Changed in sahara: | |
milestone: | liberty-3 → liberty-rc1 |
Changed in neutron: | |
milestone: | liberty-3 → liberty-rc1 |
Changed in murano: | |
milestone: | liberty-3 → liberty-rc1 |
Changed in murano: | |
importance: | Wishlist → Medium |
Changed in murano: | |
assignee: | nobody → Alexander Tivelkov (ativelkov) |
Changed in sahara: | |
milestone: | liberty-rc1 → next |
Changed in murano: | |
milestone: | liberty-rc1 → mitaka-1 |
Changed in heat: | |
milestone: | liberty-1 → 5.0.0 |
Changed in neutron: | |
milestone: | mitaka-1 → mitaka-2 |
Changed in murano: | |
milestone: | mitaka-1 → mitaka-2 |
Changed in keystone: | |
milestone: | none → mitaka-2 |
Changed in keystone: | |
milestone: | mitaka-2 → none |
Changed in neutron: | |
milestone: | mitaka-2 → mitaka-3 |
Changed in murano: | |
milestone: | mitaka-2 → mitaka-3 |
Changed in oslo.config: | |
status: | New → Fix Released |
Changed in oslo.log: | |
status: | New → Fix Released |
Changed in neutron: | |
milestone: | mitaka-3 → mitaka-rc1 |
Changed in murano: | |
milestone: | mitaka-3 → mitaka-rc1 |
Changed in neutron: | |
milestone: | mitaka-rc1 → newton-1 |
Changed in murano: | |
milestone: | mitaka-rc1 → newton-1 |
Changed in neutron: | |
milestone: | newton-1 → newton-2 |
Changed in murano: | |
milestone: | newton-1 → newton-2 |
Changed in neutron: | |
milestone: | newton-2 → newton-3 |
Changed in murano: | |
milestone: | newton-2 → newton-3 |
Changed in neutron: | |
milestone: | newton-3 → newton-rc1 |
Changed in murano: | |
milestone: | newton-3 → newton-rc1 |
Changed in neutron: | |
milestone: | newton-rc1 → none |
assignee: | Elena Ezhova (eezhova) → nobody |
status: | In Progress → Incomplete |
Changed in murano: | |
milestone: | newton-rc1 → newton-rc2 |
Changed in murano: | |
milestone: | newton-rc2 → ocata-1 |
Changed in murano: | |
milestone: | 3.1.0 → pike-2 |
Changed in murano: | |
milestone: | pike-2 → pike-rc1 |
Changed in neutron: | |
status: | Confirmed → Fix Released |
This ability already exists in Oslo, but to my knowledge only Nova is currently using it. Other projects that should behave this way can be added as "Also affects" to track that they need to pick up the functionality.