返回新闻概述

LXC 3.0.1 已发布

2018年6月4日

简介

LXC 团队很高兴地宣布发布 LXC 3.0.1!

作为稳定的 bug 修复版本,没有进行重大更改,而是专注于 bug 修复和次要可用性改进。

亮点

  • 改进 liblxc 各种部分的线程安全
  • 修复 Coverity 识别的大量 bug
  • 对 Seccomp 处理进行了多项改进,尤其是在个性方面
  • 支持 GCC 8

Bug 修复 (LXC)

  • 工具:修复未初始化变量
  • 存储:修复 lvm fs uuid 生成
  • lxc-oci:修复 Cmd/Entrypoint 解析
  • lxc-oci:使 umoci 减少冗余输出
  • lxclock:使用线程安全的 OFD fcntl() 锁
  • locktests:修复测试套件
  • conf:确保卸载不会传播到主机
  • doc:调整 lxc.container.conf(5) 中的日语翻译
  • 修复 lxc.init 中的信号发送
  • rootfs 固定:在 NFS 上,使文件隐藏但不要删除它
  • conf:修复临时文件创建
  • ringbuf:修复临时文件创建
  • 修复使用静态 libcap 和共享 gnutls 时的编译
  • attach:始终丢弃辅助组
  • lxc init:删除死代码
  • storage/rsync:在错误时释放内存
  • tools/utils:在错误时释放内存
  • lxc init:编码风格
  • utils:在旧的 glibc 上定义缺失的 __NR_setns
  • attach:尝试始终丢弃辅助组
  • conf:在错误时重新尝试不带 gid=5 的 devpts 挂载
  • execute:修复没有根映射的应用程序容器
  • conf:修复 run_script_argv() 中的网络类型检查
  • seccomp:处理架构反转
  • seccomp:处理所有错误
  • seccomp:清理兼容架构处理
  • seccomp:改进日志记录
  • 工具:为 lxc-execute 记录 -d/--daemonize
  • seccomp:非功能性更改
  • seccomp:处理架构反转 II
  • lxc-oci:创建下载目录
  • do_lxcapi_create:设置 umask
  • lxc/tools/lxc_monitor:包含缺失的
  • pam-cgfs:创建 cgroup 层次结构时忽略系统 umask
  • 还在检查点时将操作脚本传递给 CRIU
  • 修复 cgfsng_attach 中的内存泄漏
  • 修复 list_active_containers 中的内存泄漏
  • 修复未设置 HAVE_SETNS 时 tool_utils.c 构建
  • coverity:#1435210
  • coverity:#1435208
  • coverity:#1435207
  • coverity:#1435206
  • coverity:#1435205
  • coverity:#1435203
  • coverity:#1435200
  • coverity:#1435198
  • coverity:#1426734
  • lxccontainer:非功能性更改
  • lxccontainer:使用线程安全的 OFD
  • lxccontainer:非功能性更改
  • lxccontainer:do_lxcapi_is_running()
  • lxccontainer:do_lxcapi_freeze()
  • lxccontainer:do_lxcapi_unfreeze()
  • lxccontainer:非功能性更改
  • lxccontainer:使用线程安全的 open() + write()
  • lxccontainer:非功能性更改
  • lxccontainer:非功能性更改
  • lxccontainer:非功能性更改
  • coverity:#1435263
  • 修复 execute 日志文件的逻辑
  • utils:添加 LXC_PROC_PID_FD_LEN
  • execute:使用静态缓冲区
  • execute:不要再次检查继承的文件描述符
  • 添加一些 TRACE/ERROR 报告
  • execute:考虑 -o path 选项计数
  • execute:在找到现有 init 时设置 init_path
  • genl:删除
  • coverity:#1248104
  • coverity:#1248105
  • coverity:#1425744
  • utils:考虑终止的 \0 字节
  • confile:满足 gcc-8
  • network:使 gcc-8 静音
  • network:遵守 IFNAMSIZ 限制
  • 支持大小的忽略大小写后缀
  • utils:修复 parse_byte_size_string() 编码风格
  • strlcpy:添加 strlcpy() 实现
  • tree-wide:s/strncpy()/strlcpy()/g
  • CODING_STYLE:添加关于使用 strlcpy() 的部分
  • tools:s/strncpy()/strlcpy()/g
  • 回滚“工具:s/strncpy()/strlcpy()/g”
  • tools:s/strncpy()/memcpy()/
  • doc:将“-d/--daemon”选项添加到日语 lxc-execute(1)
  • doc:修复日语 lxc.container.conf(5) 中的大小单位样式
  • coverity:#1435604
  • coverity:#1435603
  • coverity:#1435602
  • coverity:#1425844
  • config:允许在用户命名空间中读写 /sys
  • coverity:#1425836
  • coverity:#1248106
  • capabilities:提高环境能力
  • coverity:#1425802
  • cgroups:重构 cgroup 处理
  • cgroups:删除 freezer_state()
  • seccomp:#ifdef SCMP_ARCH_AARCH64
  • conf:简化 write_id_mapping()
  • log:启用每个线程的容器名称前缀
  • lxc-init:跳过无法捕获的信号
  • execute:如果支持,使用 execveat() 系统调用
  • tools:仅在请求时创建日志文件
  • seccomp:修复 sscanf 数组分配中的越界错误
  • seccomp:删除令人困惑的注释行
  • seccomp:删除不必要的 memset
  • seccomp:修复解析系统调用参数过滤器时的类型不匹配
  • lxcseccomp:清理头文件
  • seccomp:parse_config_v1()
  • utils:添加 remove_trailing_newlines()
  • seccomp:get_v2_default_action()
  • seccomp:get_action_name()
  • seccomp:get_v2_action()
  • seccomp:修复 get_seccomp_arg_value()
  • seccomp:parse_v2_rules()
  • seccomp:移动 #ifdefines
  • seccomp:get_hostarch()
  • seccomp:scmp_filter_ctx get_new_ctx()
  • seccomp:do_resolve_add_rule()
  • seccomp:parse_config_v2()
  • seccomp:parse_config()
  • seccomp:lxc_read_seccomp_config()
  • tree-wide:s/sigprocmask/pthread_sigmask()/g
  • utils:修复 task_blocking_signal()
  • lxccontainer:修复发送信号时的 fd 泄漏
  • confile:排序架构
  • start:记录 setns() 失败
  • seccomp:泄漏修复
  • seccomp:重新添加操作解析错误处理
  • seccomp:重构 parse_config 的行处理
  • seccomp:无法识别的操作错误
  • seccomp:lxc_read_seccomp_config()
  • seccomp:parse_v2_rules()
  • seccomp:使 do_resolve_add_rule() 更加严格
  • tools:修复带有全局配置值的 lxc-create
  • tools:修复带有全局配置值的 lxc-create II
  • coverity:#1435806
  • coverity:#1435805
  • coverity:#1435803
  • coverity:#1435747
  • conf:非功能性更改
  • conf:使 is_execute 为布尔值
  • conf:非功能性更改
  • conf:使 close_all_fds 为布尔值
  • conf:重新排列挂载成员
  • conf:简化 tty 处理
  • conf:pts -> pty_max
  • conf:非功能性更改
  • utils:修复 task_blocking_signal()
  • network:修复套接字句柄泄漏
  • start:不要将 ns_clone_flags 初始化为 -1
  • conf:确保 lxc_delete_tty() 不会崩溃
  • start:添加重启宏
  • conf:使根 idmap 结构体为 const
  • conf:使 tmp_umount_proc 为 bool
  • conf:非功能性更改
  • conf:未调用 va_end。
  • confile:改进 strprint()
  • 更改处理程序返回值的定义
  • start:修复 waitpid() 阻塞问题
  • start:记录未知的 info.si_code
  • tree-wide:修复某些文件的模式
  • confile_utils:应用 strprint()
  • templates:实际创建 DOWNLOAD_TEMP 目录
  • templates:修复下载模板
  • 修补 lxc-update-config

Bug 修复 (LXC 模板)

  • sshd:使用 lxc.autodev
  • sshd:将容器名称传递给 init 脚本

支持和升级

LXC 3.0.1 支持到 2023 年 6 月,是我们当前的 LTS 版本,鼓励用户在发布后更新到最新的 bug 修复版本。

下载