Comment 5 for bug 1367705

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/125384
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=9bae3b1832798a274bef4a77e5acda1abaa51f2a
Submitter: Jenkins
Branch: master

commit 9bae3b1832798a274bef4a77e5acda1abaa51f2a
Author: Assaf Muller <email address hidden>
Date: Thu Mar 12 19:50:43 2015 -0400

    Replace keepalived notifier bash script with Python ip monitor

    Previously L3 HA generated a bash script and copied it to a per-router
    configuration directory that was visible to that router's keepalived
    instance. This patch changes the in-line generated Bash script to a
    Python script that can be maintained in the repository.
    The bash script was used as a keepalived notifier script, that was invoked
    by keepalived whenever a state transition occured. These notifier scripts
    may be invoked by keepalived out of order in case it transitions quickly
    twice. For example, if the master failed and two slaves fight for the new
    master role. One will transition to master, and the other will often
    transition to master and then immidiately back to standby. In this case,
    the transition scripts were often fired out of order, resulting in the
    wrong state being reported.

    The proposed approach is to get rid of the keepalived notifier scripts
    entirely. Instead, monitor IP changes on the HA device. If the omnipresent
    IP address was configured on the HA device, it means that we're looking
    at a master instance. If it was deleted, the router transition to standby
    or fault.

    In order to keep the L3 agent CPU usage down, it will spawn a process
    per HA router. That process will start the ip address monitor.
    Whenever it gets an IP address change event, it will notify the L3 agent
    via a unix domain socket.

    Partially-Implements: blueprint report-ha-router-master
    Change-Id: I2022bced330d5f108fbedd40548a901225d7ea1c
    Closes-Bug: #1402010
    Closes-Bug: #1367705