neutron/neutron
John Schwarz 977d254cc6 Throttle SIGHUPs to keepalived
Multiple SIGHUPs in quick succession might cause the master keepalived
to forfeit its mastership (which will cause keepalived to remove IPs of
its external devices, severing connectivity). This can happen when, for
example, associating or disassociating multiple floatingips.

The patch makes the agent throttle SIGHUP sent to keepalived: the very first
SIGHUP is always sent; as for subsequent signals, they are delayed till
agent threshold is reached. (It's 3 seconds by default.)

As an example, when three consequent router updates trigger keepalived
respawn then:
* the very first signal is sent as usual;
* the second signal is deferred and sent in up to 3 seconds since the
  first signal;
* the third signal is ignored, though the change that triggered it will
  be correctly applied by the second signal handler when it is triggered
  after threshold delay.

If the last time a spawn request occurred is older than current-time
minus threshold then there is no delay.

Co-Authored-By: Jakub Libosvar <libosvar@redhat.com>
Co-Authored-By: Cedric Brandily <zzelle@gmail.com>
Co-Authored-By: Ihar Hrachyshka <ihrachys@redhat.com>

Closes-Bug: 1647432
Change-Id: I2955e0de835458a2eea4dd088addf33b656f8670
2017-03-28 03:37:09 +00:00
..
agent Throttle SIGHUPs to keepalived 2017-03-28 03:37:09 +00:00
api Consume ServicePluginBase from neutron-lib 2017-03-17 12:06:57 -06:00
callbacks Downgrade callback abortable event log to debug 2017-03-16 13:35:39 -07:00
cmd Agent common config 2017-03-15 09:52:18 -06:00
common Throttle SIGHUPs to keepalived 2017-03-28 03:37:09 +00:00
conf Agent common config 2017-03-15 09:52:18 -06:00
core_extensions Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
db Merge "Removed Netmtu_db_mixin from the tree" 2017-03-21 14:26:26 +00:00
debug Agent common config 2017-03-15 09:52:18 -06:00
extensions Consume ServicePluginBase from neutron-lib 2017-03-17 12:06:57 -06:00
hacking Fix copy-paste error in hacking checks 2017-03-17 16:01:04 -07:00
ipam Use ipam AllocationOnAutoAddressSubnet class 2017-02-07 14:56:33 -05:00
locale Imported Translations from Zanata 2016-08-19 07:27:43 +00:00
notifiers Merge "Use registry.receives decorator in neutron.notifiers.nova" 2017-03-15 06:27:04 +00:00
objects OVO creation for RouterL3AgentBinding 2017-03-17 16:11:50 +00:00
pecan_wsgi pecan: Make admin context if no context was created 2017-03-16 11:28:10 -04:00
plugins Merge "Reconcile quitting_rpc_timeout with backoff RPC client" 2017-03-22 00:09:54 +00:00
privileged Do not raise an error deleting neighbour entry 2017-01-26 16:22:20 -05:00
quota Make query in quota api lockless 2017-03-07 20:49:55 +00:00
scheduler Refactor L3 scheduler (unify code paths) 2017-01-26 23:05:06 +00:00
server Pecan: Get loaded by paste deploy 2017-02-17 14:54:27 -06:00
services Merge "Use @registry.receives in neutron.services.segments.plugin" 2017-03-20 01:54:46 +00:00
tests Throttle SIGHUPs to keepalived 2017-03-28 03:37:09 +00:00
__init__.py Hacking rule to check i18n usage 2016-03-30 21:28:37 -04:00
_i18n.py Move i18n to _i18n, as per oslo_i18n guidelines 2015-12-01 19:29:10 -07:00
auth.py Spin off context module 2017-03-06 16:25:29 +00:00
manager.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
neutron_plugin_base_v2.py Revert "Revert "Remove threading before process forking"" 2016-06-02 21:26:08 +00:00
opts.py Agent common config 2017-03-15 09:52:18 -06:00
policy.py Spin off context module 2017-03-06 16:25:29 +00:00
service.py Spin off context module 2017-03-06 16:25:29 +00:00
version.py
worker.py Move AgentStatusCheckWorker to PeriodicWorker 2016-11-17 15:31:19 -08:00
wsgi.py Spin off context module 2017-03-06 16:25:29 +00:00