[acassen/keepalived] 450e7f: Merge branch 'master', remote-tracking branch 'ups...

Alexandre Cassen <[email protected]>
Newsgroups gmane.linux.keepalived.devel
Message-ID <5669ae2b17960_37793ffd4a9052b880869@hookshot-fe6-cp1-prd.iad.github.net.mail>
  Branch: refs/heads/master
  Home:   https://github.com/acassen/keepalived
  Commit: 450e7fd989b2899ca43345bd3b82743ff2f25bba
      https://github.com/acassen/keepalived/commit/450e7fd989b2899ca43345bd3b82743ff2f25bba
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Log Message:
  -----------
  Merge branch 'master', remote-tracking branch 'upstream/master'


  Commit: 63126b219547c18ffd8d28f4433e0512d1e7118b
      https://github.com/acassen/keepalived/commit/63126b219547c18ffd8d28f4433e0512d1e7118b
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M keepalived/core/main.c

  Log Message:
  -----------
  Make parent process handle and propagate USR1/2 signals

In order to be able to automate writing configuration and/or stats
the signals USR1 and USR2 need to be able to be sent to the parent
process since its pid can be read from /var/run/keepalived.pid.
The parent then needs to propagate these signals to a vrrp child.

Resolves issue #169.

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


  Commit: c9cc2badc734ef6a23db7c2c6149137b270b7379
      https://github.com/acassen/keepalived/commit/c9cc2badc734ef6a23db7c2c6149137b270b7379
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M lib/signals.c

  Log Message:
  -----------
  Ignore all signals except those explicitly wanted

In order to harden keepalived against a user accidentally sending
a wrong signal to keepalived, set all signals other than those we
want actioned to be ignored.

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


  Commit: 223ee0dcd19de5cc92be8a8a452eb37f702a27ef
      https://github.com/acassen/keepalived/commit/223ee0dcd19de5cc92be8a8a452eb37f702a27ef
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M lib/signals.c

  Log Message:
  -----------
  Remove potential race condition when setting signal handlers

There was the potential for signal_run_callback to be invoked
after calling sigaction for a signal, prior to the internal signal
handler signal_SIG***_handler and signal_SIG***_v variables being
set up.

To remove the race condition, when setting a signal handler block
the signal until the internal handlers have been fully set up.

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


  Commit: a3aa2189966ba92785b588719817a5d4d83b7cb0
      https://github.com/acassen/keepalived/commit/a3aa2189966ba92785b588719817a5d4d83b7cb0
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M lib/signals.c

  Log Message:
  -----------
  Make signal_ignore mean ignore

signal_ignore was setting a signal handler for the signal, but
then itaking no action when the signal was received. This is now
changed so the signal is actually set to be ignored.

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


  Commit: 4f03193e1494cd7348c953a63f3d2dd831daaecf
      https://github.com/acassen/keepalived/commit/4f03193e1494cd7348c953a63f3d2dd831daaecf
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M keepalived/check/check_daemon.c
    M keepalived/core/main.c
    M keepalived/vrrp/vrrp_daemon.c
    M lib/signals.c
    M lib/signals.h

  Log Message:
  -----------
  Streamline signal handling code

There was some duplication of the code for signal handling, and
this slight restructuring avoids the duplication and makes it
simpler.

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


  Commit: 2e65a87ff63c3e23659c05c7b844f1a277664b7f
      https://github.com/acassen/keepalived/commit/2e65a87ff63c3e23659c05c7b844f1a277664b7f
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

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

  Log Message:
  -----------
  Invoke notify scripts with the default signal disposition

It is reasonable for notify scripts to expect to be invoked with
the standard signal disposition, so when first setting up signal
dispositions, remember the original state so it can be restored
before the notify scripts are exec'd.

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


  Commit: ee16dada7141c7412639378677f3cfb35446df15
      https://github.com/acassen/keepalived/commit/ee16dada7141c7412639378677f3cfb35446df15
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M lib/signals.c

  Log Message:
  -----------
  Return address of previous signal handler according to SA_SIGINFO

The man page for sigaction(2) states that SA_SIGINFO is only
meaningful when establishing a signal handler. This appears not
to be the case, since the flag will be set in the oldact structure
on return from sigaction if the previous signal handler was
established using the SA_SIGINFO flag.

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


  Commit: 0497e11625a80289da4845bb7c3b8aa779cdd59f
      https://github.com/acassen/keepalived/commit/0497e11625a80289da4845bb7c3b8aa779cdd59f
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M keepalived/check/check_misc.c
    M keepalived/vrrp/vrrp_scheduler.c

  Log Message:
  -----------
  Invoke all scripts with the default signal disposition

Just as the change for notify scripts, it should apply to other
scripts as well.

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


  Commit: ea16907499ffe8f5fc05987bb2b2a1d46dd776be
      https://github.com/acassen/keepalived/commit/ea16907499ffe8f5fc05987bb2b2a1d46dd776be
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M keepalived/check/check_misc.c
    M keepalived/vrrp/vrrp_scheduler.c

  Log Message:
  -----------
  Don't wait on script process being killed after timeout

The child_timout_thread functions send a SIGKILL to a child
process that has timed out and didn't die quickly enough
after sending a SIGTERM. They then wait on the process dying.

The main problem is that if the waitpid is successful here, then
waitpid in thread_child_handler will never be successful for the
same pid, and so the entry on the child list will never be removed
and the parent thread will not be marked as ready.

There is also a theoretical possibility that the child process is
unkillable, and so the waitpid would hang forever.

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


  Commit: bf91d428e67b63f6584f7d98438ee2947775d838
      https://github.com/acassen/keepalived/commit/bf91d428e67b63f6584f7d98438ee2947775d838
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M lib/scheduler.c

  Log Message:
  -----------
  Set thread conditions before adding to list

It seems safer to set the status and type of a thread before
adding it to the ready list.

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


  Commit: 4a725b3a9b7780af0190e4f23aca9321336c35fd
      https://github.com/acassen/keepalived/commit/4a725b3a9b7780af0190e4f23aca9321336c35fd
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M keepalived/check/check_misc.c
    M keepalived/vrrp/vrrp_scheduler.c
    M lib/notify.c
    M lib/notify.h

  Log Message:
  -----------
  Remove some code duplication re running scripts

misc_check_thread and vrrp_script_thread were virtually identical
so move duplicate code into new function system_call_script in
notify.c.

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


  Commit: 508ca75d52bbef8f42d5d63f352a80aed9a5834d
      https://github.com/acassen/keepalived/commit/508ca75d52bbef8f42d5d63f352a80aed9a5834d
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M doc/man/man5/keepalived.conf.5

  Log Message:
  -----------
  Fix formating of man page

Commit 4ceb6fe introducted some formatting errors in the documentation
of additional options; this patch resolves them.

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


  Commit: 44f9b15fec849ffa15cda37cc4fe099b64142599
      https://github.com/acassen/keepalived/commit/44f9b15fec849ffa15cda37cc4fe099b64142599
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M lib/notify.c
    M lib/signals.c
    M lib/signals.h
    M lib/utils.c

  Log Message:
  -----------
  Set standard signal disposition before invoking ip(6)tables

Call signal_handler_notify before running iptables/ip6tables.
Since it is now called for more than notify scripts, rename
signal_handler_notify to signal_handler_script

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


  Commit: ec009964f8bd2afe0366270eb7f1e79689db8ff1
      https://github.com/acassen/keepalived/commit/ec009964f8bd2afe0366270eb7f1e79689db8ff1
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M keepalived/core/daemon.c
    M lib/notify.c
    M lib/utils.c
    M lib/utils.h

  Log Message:
  -----------
  Move common code for opening fd 0/1/2 into a function

The code for setting fd 0/1/2 to /dev/null before running a script
was in several places. All the common code is moved into a function
and the function called from the relevant places.

It is only necessary to reopen fd 0/1/2 if keepalived is running
with the --dont-fork option, since without that option the fds are
already open on /dev/null.

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


  Commit: 480b451a6fb98ee1c1476c3478e366666f87fe15
      https://github.com/acassen/keepalived/commit/480b451a6fb98ee1c1476c3478e366666f87fe15
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M configure
    M configure.in
    M genhash/layer4.c
    M keepalived/check/check_http.c
    M keepalived/check/check_smtp.c
    M keepalived/check/check_ssl.c
    M keepalived/check/check_tcp.c
    M keepalived/core/smtp.c
    M keepalived/libipvs-2.4/libipvs.c
    M keepalived/libipvs-2.6/libipvs.c
    M keepalived/vrrp/vrrp.c
    M keepalived/vrrp/vrrp_arp.c
    M keepalived/vrrp/vrrp_if.c
    M keepalived/vrrp/vrrp_ndisc.c
    M keepalived/vrrp/vrrp_netlink.c
    M lib/notify.c
    M lib/notify.h
    M lib/signals.c

  Log Message:
  -----------
  Optimise closure of fds before invoking scripts

Every time before a script was invoked, closeall() was called,
which would spin through 1024 file descriptors closing them, even
though the vast majority were not open, resulting in 1024 system
calls.

To avoid that, open all sockets and file descriptors (except
fd 0/1/2) with the CLOEXEC flag set, so that the fds will be closed
by the kernel when the script is exec'd.

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


  Commit: 3e0248ccd2bf48384f45c5c69703c4e56ece2156
      https://github.com/acassen/keepalived/commit/3e0248ccd2bf48384f45c5c69703c4e56ece2156
  Author: Quentin Armitage <[email protected]>
  Date:   2015-12-09 (Wed, 09 Dec 2015)

  Changed paths:
    M genhash/http.c
    M genhash/layer4.c
    M genhash/main.c

  Log Message:
  -----------
  Simplify some IPv4/IPv6 code.

Code blocks were (unnecessarily) repeated in functions which
handled both IPv4 and IPv6 situations.

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


  Commit: ff8c329a2c91f9ca7abf61a788a9bacbdff2ebb4
      https://github.com/acassen/keepalived/commit/ff8c329a2c91f9ca7abf61a788a9bacbdff2ebb4
  Author: Alexandre Cassen <[email protected]>
  Date:   2015-12-10 (Thu, 10 Dec 2015)

  Changed paths:
    M configure
    M configure.in
    M doc/man/man5/keepalived.conf.5
    M genhash/http.c
    M genhash/layer4.c
    M genhash/main.c
    M keepalived/check/check_daemon.c
    M keepalived/check/check_http.c
    M keepalived/check/check_misc.c
    M keepalived/check/check_smtp.c
    M keepalived/check/check_ssl.c
    M keepalived/check/check_tcp.c
    M keepalived/core/daemon.c
    M keepalived/core/main.c
    M keepalived/core/smtp.c
    M keepalived/libipvs-2.4/libipvs.c
    M keepalived/libipvs-2.6/libipvs.c
    M keepalived/vrrp/vrrp.c
    M keepalived/vrrp/vrrp_arp.c
    M keepalived/vrrp/vrrp_daemon.c
    M keepalived/vrrp/vrrp_if.c
    M keepalived/vrrp/vrrp_ndisc.c
    M keepalived/vrrp/vrrp_netlink.c
    M keepalived/vrrp/vrrp_scheduler.c
    M lib/notify.c
    M lib/notify.h
    M lib/scheduler.c
    M lib/signals.c
    M lib/signals.h
    M lib/utils.c
    M lib/utils.h

  Log Message:
  -----------
  Merge pull request #206 from pqarmitage/signals_and_fds

Various changes to signal handling, and closing file descriptors before exec'ing


Compare: https://github.com/acassen/keepalived/compare/ccca7f4c3262...ff8c329a2c91

------------------------------------------------------------------------------

_______________________________________________
Keepalived-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.