[acassen/keepalived] 791e19: Fix removing track_file when configuration error

Quentin Armitage <[email protected]> Wed, 07 Feb 2018 03:55:59 -0800
Newsgroups gmane.linux.keepalived.devel
Message-ID <5a7ae94fd379d_3b7c2b1e8c7fbc0c104720@hookshot-fe-da92815.cp1-iad.github.net.mail>
  Branch: refs/heads/beta
  Home:   https://github.com/acassen/keepalived
  Commit: 791e199c5aee7db9667e01888b3b764f4a876cef
      https://github.com/acassen/keepalived/commit/791e199c5aee7db9667e01888b3b764f4a876cef
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-02 (Fri, 02 Feb 2018)

  Changed paths:
    M keepalived/include/vrrp.h
    M keepalived/vrrp/vrrp_track.c

  Log Message:
  -----------
  Fix removing track_file when configuration error

If the owning directory of a track_file doesn't exist, the track_file
cannot be tracked, so it is removed from the config. This commit fixes
that removal.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 710fb451b3f6f25f6126420dc11e7b46b3b58ef9
      https://github.com/acassen/keepalived/commit/710fb451b3f6f25f6126420dc11e7b46b3b58ef9
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-02 (Fri, 02 Feb 2018)

  Changed paths:
    M keepalived/vrrp/vrrp.c

  Log Message:
  -----------
  Fix sync groups with only one member

Commit c88744a0 allowed sync groups with only 1 member again, but
didn't stop removing the sync group if there was only 1 member.

This commit now doesn't remove sync groups with only one member.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 4fde94aa6a58450ba0a3771502e6f56eb695388b
      https://github.com/acassen/keepalived/commit/4fde94aa6a58450ba0a3771502e6f56eb695388b
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-02 (Fri, 02 Feb 2018)

  Changed paths:
    M keepalived/vrrp/vrrp.c

  Log Message:
  -----------
  Merge pull request #772 from pqarmitage/fixes

Fix sync groups with only one member


  Commit: db6f4e6a0ce23583bf13ff1c889c6e479bef7962
      https://github.com/acassen/keepalived/commit/db6f4e6a0ce23583bf13ff1c889c6e479bef7962
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-02 (Fri, 02 Feb 2018)

  Changed paths:
    M keepalived/vrrp/vrrp.c

  Log Message:
  -----------
  Merge branch 'fixes' into beta


  Commit: 125cee95424647ef277dc79a005a7af5a31f7a04
      https://github.com/acassen/keepalived/commit/125cee95424647ef277dc79a005a7af5a31f7a04
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-02 (Fri, 02 Feb 2018)

  Changed paths:
    M lib/keepalived_magic.h
    M lib/notify.c

  Log Message:
  -----------
  Improve identification of script file types

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 359bf63406b85c726ff7a7bc9823298291e57662
      https://github.com/acassen/keepalived/commit/359bf63406b85c726ff7a7bc9823298291e57662
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-03 (Sat, 03 Feb 2018)

  Changed paths:
    M keepalived/core/keepalived_netlink.c
    M keepalived/vrrp/vrrp_daemon.c

  Log Message:
  -----------
  Improve efficiency of using netlink

At startup when acquiring interface and address details, use the
nl_cmd netlink socket rather than opening a new netlink socket
for each interface created.

Also, the nl_cmd netlink socket is always used synchronously so don't
set SOCK_NONBLOCK, and this avoids having to set the socket to
blocking whenever we want to read the response to a command.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 0ef48a0d5f5499a5501962568103288d6a2cd775
      https://github.com/acassen/keepalived/commit/0ef48a0d5f5499a5501962568103288d6a2cd775
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-05 (Mon, 05 Feb 2018)

  Changed paths:
    M keepalived/core/main.c

  Log Message:
  -----------
  Make track scripts work with --enable-debug config option

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: f6ec37a93c5352ead464a966fdb024232ed62f0c
      https://github.com/acassen/keepalived/commit/f6ec37a93c5352ead464a966fdb024232ed62f0c
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-05 (Mon, 05 Feb 2018)

  Changed paths:
    M keepalived/core/main.c

  Log Message:
  -----------
  Merge branch 'fixes' into beta


  Commit: 5e0a3776504080596fe87ff1dd3f0d549795a5a3
      https://github.com/acassen/keepalived/commit/5e0a3776504080596fe87ff1dd3f0d549795a5a3
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-05 (Mon, 05 Feb 2018)

  Changed paths:
    M configure
    M configure.ac

  Log Message:
  -----------
  Add warning if --enable-debug configure option is used

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 2349daf8510143e5ba515efc11e41f7c96dcd213
      https://github.com/acassen/keepalived/commit/2349daf8510143e5ba515efc11e41f7c96dcd213
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-05 (Mon, 05 Feb 2018)

  Changed paths:
    M configure
    M configure.ac

  Log Message:
  -----------
  Merge branch 'fixes' into beta


  Commit: 5332be8cab89094d18a07b5f29ef3d79ffcdfd83
      https://github.com/acassen/keepalived/commit/5332be8cab89094d18a07b5f29ef3d79ffcdfd83
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M lib/parser.c

  Log Message:
  -----------
  Allow more flexibility of layout of { and } in config files

keepalived was a bit fussy about where '{'s and '}'s (braces) could
be placed in terms of after the keyword, or on a line on their own.
It certainly was not possible to have multiple braces on one line.

This commit now provides complete flexibility of where braces are, so
long as they occur in the correct order.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: f954ea80eb560155c7b9e07569d4278fd3d4d942
      https://github.com/acassen/keepalived/commit/f954ea80eb560155c7b9e07569d4278fd3d4d942
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M keepalived/check/check_parser.c
    M keepalived/vrrp/vrrp_parser.c
    M lib/parser.c
    M lib/parser.h

  Log Message:
  -----------
  Make alloc_value_block() report block type if there is an error

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: bced56380e7db5cb9d0a2a2ccf0493a859a22ccf
      https://github.com/acassen/keepalived/commit/bced56380e7db5cb9d0a2a2ccf0493a859a22ccf
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M lib/parser.c
    M lib/parser.h

  Log Message:
  -----------
  Simplify alloc_value_block() by using libc string functions

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 0d4c3516ed5de391c258f571ee1c90b3e879c0d0
      https://github.com/acassen/keepalived/commit/0d4c3516ed5de391c258f571ee1c90b3e879c0d0
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M keepalived/vrrp/vrrp_daemon.c
    M keepalived/vrrp/vrrp_if.c

  Log Message:
  -----------
  Add dumping of garp delay config when using -d option

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 12642d2a86a5317611861b4197c993f5ba2ca5dc
      https://github.com/acassen/keepalived/commit/12642d2a86a5317611861b4197c993f5ba2ca5dc
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M keepalived/vrrp/vrrp_parser.c

  Log Message:
  -----------
  Fix fractions of seconds for garp group garp_interval

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 88fef1b1749a5f89ebe7a4e4ed550dede27e447e
      https://github.com/acassen/keepalived/commit/88fef1b1749a5f89ebe7a4e4ed550dede27e447e
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M lib/parser.c

  Log Message:
  -----------
  Make read_value_block() use alloc_value_block()

This removes quite a bit of duplication of functionality, and ensures
the configuration parsing will be more consistent.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: f7009b130eeabb10a8fb617537e28bbd7acc9864
      https://github.com/acassen/keepalived/commit/f7009b130eeabb10a8fb617537e28bbd7acc9864
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Log Message:
  -----------
  Merge branch 'master' into fixes


  Commit: 444846287a4cf6a1ffbdcec24156c9be0708ccb4
      https://github.com/acassen/keepalived/commit/444846287a4cf6a1ffbdcec24156c9be0708ccb4
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M keepalived/check/check_parser.c
    M keepalived/vrrp/vrrp_daemon.c
    M keepalived/vrrp/vrrp_if.c
    M keepalived/vrrp/vrrp_parser.c
    M lib/parser.c
    M lib/parser.h

  Log Message:
  -----------
  Merge branch 'fixes' into beta


  Commit: b689f488571b3ab9ff0eb7eaf76d0af64d0bb1c9
      https://github.com/acassen/keepalived/commit/b689f488571b3ab9ff0eb7eaf76d0af64d0bb1c9
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M keepalived/core/keepalived_netlink.c
    M keepalived/include/keepalived_netlink.h
    M keepalived/vrrp/vrrp_daemon.c

  Log Message:
  -----------
  Close netlink sockets in two stages

When the vrrp process is shutting down and deleting addresses and
interfaces, we don't need to overhead of receiving messages on the
kernel netlink monitoring sockets, so close that socket before
deleting addresses and interfaces.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 567a31f18c310cf9dcad56f059e6723934f13a80
      https://github.com/acassen/keepalived/commit/567a31f18c310cf9dcad56f059e6723934f13a80
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M configure
    M configure.ac
    M keepalived/core/keepalived_netlink.c
    A keepalived/core/keepalived_netlink.c.new
    M keepalived/include/keepalived_netlink.h
    M keepalived/vrrp/vrrp_daemon.c
    M lib/config.h.in

  Log Message:
  -----------
  Add option for timing netlink calls

This has shown that creating interfaces takes 0.2ms whereas deleting
an interfaces takes about 10ms (i.e. 50 times as long).

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 389344b2db2f28dc636e7e180f1ae397217ab66d
      https://github.com/acassen/keepalived/commit/389344b2db2f28dc636e7e180f1ae397217ab66d
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    R keepalived/core/keepalived_netlink.c.new

  Log Message:
  -----------
  Remove file accidentally included in previous commit

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: ee73f5b36231e1be896c5bf90ad7e5ce561cf54b
      https://github.com/acassen/keepalived/commit/ee73f5b36231e1be896c5bf90ad7e5ce561cf54b
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M configure
    M configure.ac
    M keepalived/core/keepalived_netlink.c
    M lib/config.h.in

  Log Message:
  -----------
  By default, tell netlink not to report ENOBUFS

There appears to be a kernel bug that manifests itself when we have a large number
of VMAC interfaces to add (i.e. 200 or more). After approx 200 interfaces have been
added the kernel will return ENOBUFS on the nl_kernel socket, and then repeat the
first 30 or so RTM_NEWLINK messages, omitting the first one. Then, at the end of
creating all the interfaces, i.e. after a slight delay with no new messages,
we get another ENOBUFS and all the RTM_NEWLINK messages from the time of the
first ENOBUFS message repeated.

This problem feels as though a circular buffer is wrapping around, and causes
all the old messages in the buffer to be resent, but the first one is omitted.
Note that it is only the interfaces that keepalived creates that are resent,
not interfaces that already existed on the system before keepalived starts.

We can also get ENOBUFS on the nl_cmd socket if the NLM_F_ECHO flag is set as well as
the NLM_F_ACK flag when a command is sent on the nl_cmd socket.

It appears that this must be a kernel bug, since when it happens on interface creation,
if we are also running `ip monitor link addr route`, i.e. the same as the nl_kernel
socket, then precisely the same messages are repeated (provided we have set the buffer
IF_DEFAULT_BUFSIZE (the rcvbuf size) to be 1024 * 1024 to match what ip monitor does).

Further investigations are needed to identify the exact cause of the problem, and
if the kernel is patched to resolve the problem, then we can remove this work-around
iwhen running on kernels that have the fix.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 30366ac965df0bfae39123effa8d1897daaf3c7e
      https://github.com/acassen/keepalived/commit/30366ac965df0bfae39123effa8d1897daaf3c7e
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M keepalived/core/keepalived_netlink.c
    M keepalived/vrrp/vrrp_parser.c

  Log Message:
  -----------
  Fix build problems found by Travis-CI

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: a10c0885b8f8eb767ffc0ec31830b12c4b5ca7fb
      https://github.com/acassen/keepalived/commit/a10c0885b8f8eb767ffc0ec31830b12c4b5ca7fb
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M keepalived/check/check_api.c
    M keepalived/core/keepalived_netlink.c

  Log Message:
  -----------
  Fix building without VRRP functionality

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 40ea4af00aa39e30eab3fe031b6f265bf1843029
      https://github.com/acassen/keepalived/commit/40ea4af00aa39e30eab3fe031b6f265bf1843029
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M keepalived/core/keepalived_netlink.c

  Log Message:
  -----------
  Improve handling of netlink sockets

The nl_cmd socket wasn't being handled properly for the checker
process.

Signed-off-by: Quentin Armitage <[email protected]>


  Commit: 8ccf93780b8fa8ffc17aaf97989a9896ce370830
      https://github.com/acassen/keepalived/commit/8ccf93780b8fa8ffc17aaf97989a9896ce370830
  Author: Quentin Armitage <[email protected]>
  Date:   2018-02-07 (Wed, 07 Feb 2018)

  Changed paths:
    M configure
    M configure.ac
    M keepalived/check/check_api.c
    M keepalived/check/check_parser.c
    M keepalived/core/keepalived_netlink.c
    M keepalived/core/main.c
    M keepalived/include/keepalived_netlink.h
    M keepalived/include/vrrp.h
    M keepalived/vrrp/vrrp.c
    M keepalived/vrrp/vrrp_daemon.c
    M keepalived/vrrp/vrrp_if.c
    M keepalived/vrrp/vrrp_parser.c
    M keepalived/vrrp/vrrp_track.c
    M lib/config.h.in
    M lib/keepalived_magic.h
    M lib/notify.c
    M lib/parser.c
    M lib/parser.h

  Log Message:
  -----------
  Merge pull request #776 from pqarmitage/beta

Netlink handling enhancements


Compare: https://github.com/acassen/keepalived/compare/001ea5f68175...8ccf93780b8f

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
Keepalived-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-devel