返回新闻概述

LXC 4.0.10 已发布

2021年7月17日

介绍

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

这是 LXC 4.0 的第十个错误修复版本,它将在 2025 年 6 月之前得到支持。

错误修复

与往常一样,此错误修复版本侧重于稳定性和加固。此版本的一些亮点包括

  • 修复不太常见的架构问题
  • 支持额外的 idmap 挂载
  • lxc-net 中的 nft 支持
  • 为 sys:mixed 提供更清晰的挂载条目
  • 将 GPG 服务器切换到 keyserver.ubuntu.com

完整的提交列表如下

详细变更日志
  • conf: 处理具有 CAP_SETFCAP 的内核
  • doc: 文档说明 lxc.rootfs.options 的新 idmap= 选项
  • 跳过 ZFS 根目录的根文件系统固定。
  • 重新排列 ZFS 检查以遵循 overlayfs 返回的样式。
  • confile: 重新添加 aarch64 架构
  • tests: 添加对支持架构的测试
  • tests: 为 make dist 修复 lxc-test-arch-parse
  • confile: 将 AppArmor 和 SELinux confile 解析从错误转换为警告
  • 合并拉取请求 #3835 来自 brauner/2021-05-10.fixes.apparmor.stable-4.0
  • oss-fuzz: 添加基本的 cgroup_init()/cgroup_exit() 模糊测试
  • cgroups: 在初始化错误时清理 cgroup_ops
  • conf: 在设置 /dev 时允许 xdev
  • conf: 不要卸载 procfs 和 sysfs
  • conf: 微调根文件系统处理
  • start: 将 idmapped 挂载设置移至后面
  • tree-wide: s/parse_mntopts/parse_mntopts_legacy/
  • conf: 重命名结构 mount_opt 标志成员 s/flag/legacy_flag/
  • 跳过对只读文件系统的根文件系统固定。
  • conf: 支持 idmapped lxc.mount.entry 条目
  • conf: 在设置 idmapped 挂载时添加序列
  • confile: 释放挂载数据
  • conf: 修复挂载选项解析
  • cgroups: 重做检查传统层次结构是否可写
  • conf: 将子进程的文件描述符同步移至单个函数
  • conf: 将父进程的文件描述符同步移至单个函数
  • conf: 在位字段中使用显式符号
  • start: 使用 barrier 而不是 wake/wait 对
  • start: 重新排序 START_SYNC_POST_CONFIGURE
  • start: 简化启动同步
  • README: 更新 IRC
  • network: 请修复损坏的编译器
  • 更新 lxc-net 以支持 nftables
  • lxc: 将 lpthread 添加到 lxc.pc
  • lsm/apparmor: 在我们无法连接 AppArmor 配置文件时实际报告错误
  • tools/lxc_autostart: 修复失败计数
  • api_extensions: 引入 idmapped_mounts_v2 api 扩展
  • confile: 回退 lxc.init.groups 配置键
  • string utils: 确保不要返回未初始化的内存。
  • 添加对 LISTEN_FDS 环境变量的支持。
  • common.conf: 替换有问题的术语
  • seccomp: 替换有问题的术语
  • tree-wide: 删除有问题的术语
  • tree-wide: 替换有问题的术语
  • tree-wide: 替换有问题的术语
  • tree-wide: 替换有问题的术语
  • cgroups: 对共同挂载的 v1 控制器使用稳定的排序
  • 当项目添加到数组时,数组会重新分配(大小+1),然后项目会被复制(strdup())到数组。因此,当从数组中删除项目时,应释放为该项目分配的内存,后续项目应左移,然后重新分配数组(大小-1)。
  • 调整 remove_from_array() 中的数组大小并修复崩溃
  • lxc-download: 切换 GPG 服务器
  • cgroups: 验证层次结构是否非空
  • 当项目添加到数组时,数组会重新分配(大小+1),然后项目会被复制(strdup())到数组。因此,当从数组中删除项目时,应释放为该项目分配的内存,后续项目应左移,然后重新分配数组(大小-1)。
  • execute: 不要执行 init,调用它
  • initutils: 在 lxc_container_init() 中使用 vfork()
  • network: 在发送时记录网络设备
  • execute: 确保父进程被告知子进程执行并关闭所有不必要的 fd
  • initutils: 在错误路径中关闭 dirfd
  • conf: 改善具有读写 /sys/devices/virtual/net 的只读 /sys
  • tests: 添加对具有读写 /sys/devices/virtual/net 的只读 /sys 的测试
  • cgroups: 处理奇特的 cgroup 布局
  • terminal: 确保换行符被转换为换行符+回车符,以用于终端输出
  • cmd/lxc-checkconfig: 列出 cgroup 命名空间并重命名令人困惑的 ns_cgroup 条目
  • doc: 将基于 eBPF 的设备控制器语义添加到日语手册页
  • doc: 附加 net 类型字段的描述
  • doc: 将新的 idmap= 选项添加到日语 lxc.container.conf(5)
  • doc: 修复英语 lxc.container.conf(5) 中的拼写错误
  • conf: userns.conf: 包含 userns.conf.d
  • confile: 允许包含不存在的目录
  • lxc_unshare: 使挂载表私有
  • lxc_unshare: 修复网络设备处理
  • file_utils: 在回退到 openat() 时显示 ENOENT
  • doc/common_options: 添加 trace 和 alert 日志级别
  • initutils: 包含 pthread.h
  • start: 修复日志消息
  • sync: 修复日志消息
  • terminal: 以不那么令人担忧的方式记录 TIOCGPTPEER 失败
  • af_unix: 在没有要发送的 fd 时报告错误
  • terminal: 修复错误处理

支持和升级

LXC 4.0 分支将在 2025 年 6 月之前得到支持。
只有错误修复和安全问题会包含在稳定的错误修复版本中,因此始终建议并且安全运行最新的错误修复版本。

下载