收起左侧

Arm版本通过VMWare Fusion在mac上频繁出现Docker 启动时整机硬死

5
回复
136
查看
[ 复制链接 ]

0

主题

0

回帖

0

牛值

江湖小虾

2026-6-29 21:25:42 显示全部楼层 阅读模式

环境

项目 版本 / 配置
宿主机 Mac mini(Mac16,10),Apple M4,10 核(4 性能 + 6 能效)
宿主系统 macOS 26.5.1(构建 25F80)
虚拟化 VMware Fusion 26.0.0(build 25388279)
虚拟机 8 vCPU,8 GB 内存
客户机 fnOS 1.1.3105(基于 Debian 12 bookworm)
内核 6.18.18-trim #649 SMP aarch64(自定义内核)
Docker 28.2.2,data-root 在虚拟 NVMe(/vol3),live-restore=true(默认)
防火墙后端 nftables

问题描述

虚拟机在 docker 启动阶段(开机自启动、或 docker build)偶发整机硬死锁:SSH 断开、控制台冻结、永不恢复,只能强制重启。表现为全部 CPU 内核态软死锁(soft lockup)rcu_sched 被饿死,卡住的任务为 dockerd / containerd / runc,连 systemd(PID 1)也被拖住。属于 CPU 在内核态自旋,非 I/O 等待。

可能的原因(推测)

docker 启动阶段会并发地为多个容器与自定义 bridge 网络编程 nftables(NAT/DNAT/masquerade)和 overlay。怀疑这种并发的 netfilter / overlay 编程在该自定义 ARM 内核上触发了内核态自旋 / 死锁,进而导致全 CPU soft lockup。

注:整机死锁时 printk 无法刷出完整调用栈,目前未能抓到精确的卡死内核函数。以上均为基于现象的推测,确切定位需配置 kdump 抓取 crash dump。

关键日志(串口控制台抓取,docker / containerd 启动后约 66s)

Starting containerd.service - containerd container runtime...
...
[   66.499880] rcu: INFO: rcu_sched self-detected stall on CPU
[   66.505772] rcu: rcu_sched kthread starved for 5247 jiffies! ... ->cpu=3
[   66.508659] rcu:    Unless rcu_sched kthread gets sufficient CPU time, OOM is now expected behavior.
[   72.015830] watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [trim_file_monit:1855]
[   72.019824] watchdog: BUG: soft lockup - CPU#7 stuck for 27s! [systemd:1]
[   72.019961] watchdog: BUG: soft lockup - CPU#6 stuck for 27s! [dockerd:3198]
[   72.020224] watchdog: BUG: soft lockup - CPU#3 stuck for 27s! [dockerd:3187]
[   72.020502] watchdog: BUG: soft lockup - CPU#5 stuck for 27s! [dockerd:2340]
...(全部 8 个 CPU 软死锁,持续到 296s 仍未恢复,最终被强制重启)

完整日志见附件 fnos-serial-console-full.log(原始)/ serial-softlockup-excerpt.log(去除 ANSI 的摘录)。

日志收集方法

  1. VMware Fusion 给虚拟机加一个串口,输出重定向到宿主机文件。编辑 <VM>.vmwarevm/<VM>.vmx
    serial0.present = "TRUE"
    serial0.fileType = "file"
    serial0.fileName = "/.../serial-console.log"
    serial0.yieldOnMsrRead = "TRUE"
    
  2. 客户机内核 cmdline 增加 console=ttyS0,115200(与原有 console=tty0 console=ttyAMA0,115200 并存),使内核 printk 输出到该串口并落盘到宿主机文件——即使整机死锁也能抓到 printk

upload 附件:logs.zip

本报告的问题分析、日志采集与验证由 Claude Code 完成。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

3

主题

10

回帖

0

牛值

🛩️ARM内测用户组

2026-7-1 12:22:29 显示全部楼层

arm的飞牛,虽然docker功能用起来可以,但是不建议启用docker啊,因为只要你重启设备,他大概率撞**报的这个问题。

后面除非你永不重启。我就是在多次试验后没有找到解决方案,无奈多次重装。最后一次重装,自己确保docker从未被启用【或者说点开docker入口后,提示首次使用需设置路径,这一步不要设置,否则就意味着docker被启用了】

希望官方能修掉这个bug。我是树莓派4B。只要设置过docker路径,重启有80%概率复现。

2026-7-6 09:33:13 显示全部楼层

那么问题来了,你不用docker你用啥飞牛啊,nas你不玩docker玩什么,这么久了还没修

2026-7-6 09:34:48 显示全部楼层

苹果M4芯片的arm飞牛,无论用哪个虚拟机,都遇到这个问题,官方估计都还没发现,几个月了

我也为这个问题写了很详细的文章,不同虚拟机的差异和细节日志都抓到了,结果发了一个月了,都还是“审核中”,官方没人管,估计arm版本身也没怎么上心  详情 回复
2026-7-9 23:22

0

主题

3

回帖

0

牛值

江湖小虾

2026-7-9 23:22:41 显示全部楼层
Charmillionaire 发表于 2026-7-6 09:34
苹果M4芯片的arm飞牛,无论用哪个虚拟机,都遇到这个问题,官方估计都还没发现,几个月了
...

我也为这个问题写了很详细的文章,不同虚拟机的差异和细节日志都抓到了,结果发了一个月了,都还是“审核中”,官方没人管,估计arm版本身也没怎么上心

1

主题

6

回帖

0

牛值

江湖小虾

fnOS1.0上线纪念勋章

一样,macmini用utm安装飞牛,只要升级、或者强制重启就死机,无法启动,一直不敢正常用

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则