neutron/neutron/agent/linux
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
..
openvswitch_firewall Fixes crash when starting Neutron OVS Agent on Windows 2017-03-07 15:55:40 -05:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
async_process.py Change default exception in wait_until_true 2017-01-09 05:37:27 -05:00
bridge_lib.py LinuxBridge: Use ifindex for logical 'timestamp' 2016-09-14 17:02:46 +00:00
daemon.py Use bytes for python3 friendly os.write 2017-02-02 18:59:03 -08:00
dhcp.py Move dhcp_release6_supported to runtime checks file 2017-02-15 16:29:01 -06:00
dibbler.py Add PD support in HA router 2017-03-15 04:31:09 +00:00
external_process.py Merge "Don't return null-byte separated string from ExternalProcess.cmdline()" 2017-03-20 23:41:08 +00:00
interface.py Stop handling interface drivers that don't support MTU 2017-02-22 06:07:48 +00:00
ip_conntrack.py Stop killing conntrack state without CT Zone 2017-03-03 19:22:45 +00:00
ip_lib.py Change in-tree code to use moved get_ip_version() 2017-03-08 11:35:29 -05:00
ip_link_support.py Add new configuration test in sanity check: vf_extended_management 2016-08-30 11:27:55 +00:00
ip_monitor.py Ignore possible suffix in iproute commands. 2015-12-10 11:16:12 +02:00
ipset_manager.py Delete conntrack when remote ipset member removed 2016-11-29 16:19:03 +00:00
iptables_comments.py Neutron to Drop Router Advts from VM ports 2015-04-24 03:42:07 +00:00
iptables_firewall.py iptables: stop 'fixing' kernel sysctl bridge firewalling knobs 2017-02-27 15:14:14 +00:00
iptables_manager.py Agent common config 2017-03-15 09:52:18 -06:00
keepalived.py Throttle SIGHUPs to keepalived 2017-03-28 03:37:09 +00:00
ovsdb_monitor.py Ensure ovsdb_connection enabled before calling monitor 2017-03-06 22:19:18 +00:00
pd_driver.py Fix module's import order 2016-01-22 06:38:42 -08:00
pd.py Add PD support in HA router 2017-03-15 04:31:09 +00:00
polling.py Support ovsdb-client monitor with remote connection 2017-01-17 06:00:58 -08:00
ra.py Remove advertise_mtu config option 2017-01-09 22:17:09 +00:00
tc_lib.py Revert "Linux Bridge: driver support for QoS egress minimum bandwidth" 2017-02-09 19:11:00 +00:00
utils.py Agent common config 2017-03-15 09:52:18 -06:00
xenapi_root_helper.py XenAPI: Support daemon mode for rootwrap 2017-01-19 07:33:43 +00:00