[lxc-devel] [lxc/lxc] 9dfa40: commands: non-functional changes

GitHub noreply at github.com
Mon Nov 20 22:21:26 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/lxc/lxc
  Commit: 9dfa4041c7039c64052a988d85d2b9291a87f2d3
      https://github.com/lxc/lxc/commit/9dfa4041c7039c64052a988d85d2b9291a87f2d3
  Author: Christian Brauner <christian.brauner at ubuntu.com>
  Date:   2017-11-20 (Mon, 20 Nov 2017)

  Changed paths:
    M src/lxc/commands.c
    M src/lxc/commands.h
    M src/lxc/commands_utils.c
    M src/lxc/commands_utils.h
    M src/lxc/start.c

  Log Message:
  -----------
  commands: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>


  Commit: c1a3e54736744b0a403f3fcda4f3466c727d6629
      https://github.com/lxc/lxc/commit/c1a3e54736744b0a403f3fcda4f3466c727d6629
  Author: Christian Brauner <christian.brauner at ubuntu.com>
  Date:   2017-11-20 (Mon, 20 Nov 2017)

  Changed paths:
    M src/lxc/lxccontainer.c

  Log Message:
  -----------
  lxccontainer: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>


  Commit: f6fc156515a0368659c957831bd7acdad1ee95a3
      https://github.com/lxc/lxc/commit/f6fc156515a0368659c957831bd7acdad1ee95a3
  Author: Christian Brauner <christian.brauner at ubuntu.com>
  Date:   2017-11-20 (Mon, 20 Nov 2017)

  Changed paths:
    M src/lxc/commands.c

  Log Message:
  -----------
  commands: fix state socket implementation

Remove dead state clients from state client list. Consider the following
scenario:

01 start container
02 issue shutdown request
03 state_client_fd is added to lxc_handler
03 container doesn't respond to shutdown request
04 user aborts shutdown request
05 lxc_cmd_fd_cleanup() removes state_client_fd from lxc_mainloop
06 invalid state_client_fd is still recorded in the lxc_handler
07 user issues lxc_cmd_stop() request via SIGKILL
08 container reaches STOPPED state and sends message to state_client_fd
09 state_client_fd number has been reused by lxc_cmd_stop_callback()
10 invalid data gets dumped to lxc_cmd_stop()

Reproducer:
Set an invalid shutdown signal to which the init system does not respond with a
shutdown via lxc.signal.halt e.g. "lxc.signal.halt = SIGUSR1". Then do:

1. start container
    root at conventiont|~
    > lxc-start -n a1

2. try to shutdown container
    root at conventiont|~
    > lxc-stop -n a1

3. abort shutdown
^C

4. SIGKILL the container (lxc.signal.stop = SIGKILL)
    root at conventiont|~
    > lxc-stop -n a1 -k
    lxc-stop: a1: commands.c: lxc_cmd_rsp_recv: 165 File too large - Response data for command "stop" is too long: 12641 bytes > 8192

To not let this happen we remove the state_client_fd from the lxc_handler when
we detect a cleanup event in lxc_cmd_fd_cleanup().

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>


  Commit: a848f32a9415fd32755fdeb55042ead205c26ba0
      https://github.com/lxc/lxc/commit/a848f32a9415fd32755fdeb55042ead205c26ba0
  Author: Stéphane Graber <stgraber at stgraber.org>
  Date:   2017-11-20 (Mon, 20 Nov 2017)

  Changed paths:
    M src/lxc/commands.c
    M src/lxc/commands.h
    M src/lxc/commands_utils.c
    M src/lxc/commands_utils.h
    M src/lxc/lxccontainer.c
    M src/lxc/start.c

  Log Message:
  -----------
  Merge pull request #1931 from brauner/2017-11-20/fix_state_socket

commands: fix state socket implementation


Compare: https://github.com/lxc/lxc/compare/4671db7abf48...a848f32a9415


More information about the lxc-devel mailing list