[lxc-devel] [lxc/lxc] 339033: commands: non-functional changes
GitHub
noreply at github.com
Mon Nov 20 22:28:35 UTC 2017
Branch: refs/heads/stable-2.0
Home: https://github.com/lxc/lxc
Commit: 33903369951ef675f15a3b54cc16436f5c7a20f4
https://github.com/lxc/lxc/commit/33903369951ef675f15a3b54cc16436f5c7a20f4
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: 28c42dfcb547dc72b71e6138a78189f0ecfe21a0
https://github.com/lxc/lxc/commit/28c42dfcb547dc72b71e6138a78189f0ecfe21a0
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: 06485e3772c3dd5ebe84389078ec322a9663b024
https://github.com/lxc/lxc/commit/06485e3772c3dd5ebe84389078ec322a9663b024
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>
Compare: https://github.com/lxc/lxc/compare/bfc1a0e92c07...06485e3772c3
More information about the lxc-devel
mailing list