[lxc-devel] [lxc/lxc] 0b1e24: console: clean tty state + return 0 on peer exit
GitHub
noreply at github.com
Wed Sep 6 10:02:31 UTC 2017
Branch: refs/heads/master
Home: https://github.com/lxc/lxc
Commit: 0b1e242ba3817cafe4377b98c90edc48f86dd93a
https://github.com/lxc/lxc/commit/0b1e242ba3817cafe4377b98c90edc48f86dd93a
Author: LiFeng <lifeng68 at huawei.com>
Date: 2017-09-06 (Wed, 06 Sep 2017)
Changed paths:
M src/lxc/console.c
Log Message:
-----------
console: clean tty state + return 0 on peer exit
In the past, if the console client exited, lxc_console_cb_con return 1. And
the lxc_poll will exit, the process will wait at waitpid. At this moment, the
process could not handle any command (For example get the container state
LXC_CMD_GET_STATE or stop the container LXC_CMD_STOP.).
I think we should clean the tty_state and return 0 in this case. So, we can use
the lxc-console to connect the console of the container. And we will not exit
the function lxc_polland we can handle the commands by lxc_cmd_process
Reproducer prior to this commit:
- open a new terminal, get the tty device name by command tty /dev/pts/6
- set lxc.console.path = /dev/pts/6
- start the container and the ouptut will print to /dev/pts/6
- close /dev/pts/6
- try an operation e.g. getting state with lxc-ls and lxc-ls will hang
Closes #1787.
Signed-off-by: LiFeng <lifeng68 at huawei.com>
Acked-by: Christian Brauner <christian.brauner at ubuntu.com>
More information about the lxc-devel
mailing list