Terry Wilson 2a09a4b802 Use oslo_service's SignalHandler for signals
When Neutron is killed with SIGTERM (like via systemctl), when using
ML2/OVN neutron workers do not exit and instead are eventually killed
with SIGKILL when the graceful timeout is reached (often around 1
minute).

This is happening due to the signal handlers for SIGTERM. There are
multiple issues.

1) oslo_service, ml2/ovn mech_driver, and ml2/ovo_rpc.py all call
   signal.signal(signal.SIGTERM, ...) overwriting each others signal
   handlers.
2) SIGTERM is handled in the main thread, and running blocking code
   there causes AssertionErrors in eventlet which also prevents the
   process from exiting.
3) The ml2/ovn cleanup code doesn't cause the process to end, so it
   interrupts the killing of the process.

oslo_service has a singleton SignalHandler class that solves all of
these issues

Closes-Bug: #2056366
Depends-On: https://review.opendev.org/c/openstack/oslo.service/+/913512
Change-Id: I730a12746bceaa744c658854e38439420efc4629
Signed-off-by: Terry Wilson <twilson@redhat.com>
(cherry picked from commit a4e49b6b8fcf9acfa4e84c65de19ffd56b9022e7)
2024-07-30 20:51:54 +00:00
2016-06-28 22:46:19 +02:00
2022-12-10 20:43:54 +01:00
2023-09-25 10:10:38 -04:00
2024-03-15 14:50:24 +00:00
2014-05-16 13:40:04 -04:00
2024-01-17 13:33:08 -05:00
2023-08-21 13:57:00 +00:00
2024-02-08 10:34:10 -05:00
2023-03-28 06:59:20 +00:00
2024-01-12 17:44:09 +09:00

OpenStack Neutron

image

Neutron is an OpenStack project to provide "network connectivity as a service" between interface devices (e.g., vNICs) managed by other OpenStack services (e.g., Nova).

To learn more about neutron:

If you would like to contribute to Neutron, please read the file CONTRIBUTING.rst or see the Neutron contributor guide:

https://docs.openstack.org/neutron/latest/contributor/contributing.html

Get in touch via email. Use [Neutron] in your subject.

Description
OpenStack Networking (Neutron)
Readme 1 GiB
Languages
Python 99.7%
Shell 0.3%