docker / containerd 错误 panic: invalid freelist page: 162, page type is leaf

2023-05-16

错误描述

containerd 服务启动失败,使用命令 journalctl -xe -u containerd 查看日志如下所示:

[root@k8s-dev-node2 /]# journalctl -xe -u containerd
-- Unit containerd.service has begun starting up.
2月 09 15:19:31 k8s-dev-node2 systemd[1]: Started containerd container runtime.
-- Subject: Unit containerd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit containerd.service has finished starting up.
-- 
-- The start-up result is done.
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.493003002+08:00" level=info msg="starting containerd" revision=5b46e404f6b9f661a205e28d59c982d3634148f8 version=v1.4.11
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.519295252+08:00" level=info msg="loading plugin \"io.containerd.content.v1.content\"..." type=io.containerd.content.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.519366008+08:00" level=info msg="loading plugin \"io.containerd.snapshotter.v1.aufs\"..." type=io.containerd.snapshotter.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520666359+08:00" level=info msg="skip loading plugin \"io.containerd.snapshotter.v1.aufs\"..." error="aufs is not supported (modprobe aufs failed: exit status 1 \"modprobe: FATAL: Module aufs not 
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520700319+08:00" level=info msg="loading plugin \"io.containerd.snapshotter.v1.btrfs\"..." type=io.containerd.snapshotter.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520858968+08:00" level=info msg="skip loading plugin \"io.containerd.snapshotter.v1.btrfs\"..." error="path /var/lib/containerd/io.containerd.snapshotter.v1.btrfs (xfs) must be a btrfs filesystem 
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520876555+08:00" level=info msg="loading plugin \"io.containerd.snapshotter.v1.devmapper\"..." type=io.containerd.snapshotter.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520924961+08:00" level=warning msg="failed to load plugin io.containerd.snapshotter.v1.devmapper" error="devmapper not configured"
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520939594+08:00" level=info msg="loading plugin \"io.containerd.snapshotter.v1.native\"..." type=io.containerd.snapshotter.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.520962861+08:00" level=info msg="loading plugin \"io.containerd.snapshotter.v1.overlayfs\"..." type=io.containerd.snapshotter.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.521050820+08:00" level=info msg="loading plugin \"io.containerd.snapshotter.v1.zfs\"..." type=io.containerd.snapshotter.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.521197935+08:00" level=info msg="skip loading plugin \"io.containerd.snapshotter.v1.zfs\"..." error="path /var/lib/containerd/io.containerd.snapshotter.v1.zfs must be a zfs filesystem to be used w
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.521213914+08:00" level=info msg="loading plugin \"io.containerd.metadata.v1.bolt\"..." type=io.containerd.metadata.v1
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.521245287+08:00" level=warning msg="could not use snapshotter devmapper in metadata plugin" error="devmapper not configured"
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: time="2023-02-09T15:19:31.521258310+08:00" level=info msg="metadata content store policy set" policy=shared
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: panic: invalid freelist page: 162, page type is leaf
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: goroutine 1 [running]:
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*freelist).read(0xc0003ba500, 0x7f406013d000)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/freelist.go:266 +0x30b
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*DB).loadFreelist.func1()
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/db.go:316 +0xd4
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: sync.(*Once).doSlow(0xc0000c6568, 0xc00062b390)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /usr/local/go/src/sync/once.go:68 +0xee
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: sync.(*Once).Do(...)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /usr/local/go/src/sync/once.go:59
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/vendor/go.etcd.io/bbolt.(*DB).loadFreelist(0xc0000c6400)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/db.go:309 +0x6c
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/vendor/go.etcd.io/bbolt.Open(0xc000399940, 0x3a, 0x1a4, 0x23e0aa0, 0xc0000d2ab8, 0x1, 0x1)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/vendor/go.etcd.io/bbolt/db.go:286 +0x3af
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/services/server.LoadPlugins.func2(0xc0003ba480, 0xc00003fb00, 0x2, 0x2, 0x1852100)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/services/server/server.go:380 +0x885
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/plugin.(*Registration).Init(0xc00042a240, 0xc0003ba480, 0x1836e60)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/plugin/plugin.go:110 +0x3a
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/services/server.New(0x1a7b010, 0xc000122000, 0xc000001500, 0x1, 0x1, 0xc00041c030)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/services/server/server.go:168 +0xce5
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/cmd/containerd/command.App.func1(0xc0000fa160, 0x0, 0x0)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/cmd/containerd/command/main.go:177 +0x7cc
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/vendor/github.com/urfave/cli.HandleAction(0x1803080, 0x1a284a8, 0xc0000fa160, 0x0, 0x0)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:523 +0x107
2月 09 15:19:31 k8s-dev-node2 systemd[1]: containerd.service: main process exited, code=exited, status=2/INVALIDARGUMENT
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/vendor/github.com/urfave/cli.(*App).Run(0xc00052a000, 0xc00012c000, 0x5, 0x5, 0x0, 0x0)
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: /tmp/tmp.Fbs9SsdNvu/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:285 +0x655
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: main.main()
2月 09 15:19:31 k8s-dev-node2 containerd[2317]: github.com/containerd/containerd/cmd/containerd/main.go:33 +0x51
2月 09 15:19:31 k8s-dev-node2 systemd[1]: Unit containerd.service entered failed state.
2月 09 15:19:31 k8s-dev-node2 systemd[1]: containerd.service failed.
lines 667-721/721 (END)

根据错误日志信息,在 metadata content store policy set 之后就接着报错 panic: invalid freelist page: 162, page type is leaf,判断可能是 meta.db 文件损坏导致。

问题解决

1、查看 containerd 路径

[root@k8s-dev-node2 /]# systemctl cat containerd | grep ExecStart
ExecStartPre=/sbin/modprobe overlay
ExecStart=/usr/bin/containerd

2、查找 meta.db 文件所在位置

[root@k8s-dev-node2 containerd]# find /var/lib/containerd -type f -size -5M -name '*.db*' | grep -v overlay
/var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db

3、删除/重命名 meta.db 文件后启动 containerd 服务

[root@k8s-dev-node2 /]# mv /var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db{,.bak}
[root@k8s-dev-node2 /]# systemctl restart containerd

4、最后查看 containerd 服务状态为 active (running) 成功

[root@k8s-dev-node2 /]# systemctl status containerd
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2023-02-09 15:28:32 CST; 5s ago
     Docs: https://containerd.io
  Process: 2454 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 2456 (containerd)
    Tasks: 14
   Memory: 22.0M
   CGroup: /system.slice/containerd.service
           └─2456 /usr/bin/containerd # containerd

最后就可以启动 docker 服务了。


如果是 docker,和 containerd 相似,查找到 db 文件,备份改名重启服务,如下代码示例所示:

[root@k8s-dev-node1 /]# find /var/lib/docker -type f -size -5M -name '*.db*' | grep -v overlay
/var/lib/docker/volumes/metadata.db
/var/lib/docker/network/files/local-kv.db
/var/lib/docker/buildkit/containerdmeta.db
/var/lib/docker/buildkit/snapshots.db
/var/lib/docker/buildkit/metadata_v2.db
/var/lib/docker/buildkit/cache.db
[root@k8s-dev-node1 /]# mv /var/lib/docker/network/files/local-kv.db{,.bak}
[root@k8s-dev-node1 /]# systemctl restart docker

重点关注尝试 metadata.dblocal-kv.db 这两个 db 文件。


(END)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker / containerd 错误 panic: invalid freelist page: 162, page type is leaf 的相关文章

随机推荐

  • ROS安装与报错的解决办法

    目录 1 安装步骤 xff08 1 xff09 添加ROS软件源 xff08 2 xff09 添加秘钥 xff08 3 xff09 安装ROS xff08 4 xff09 初始化rosdep xff08 5 xff09 设置环境变量 xff
  • OpenCV - C++实战(06) — Grabcut图像分割

    目录 第6章 图像分割 6 1 Grabcut实现 6 1 1 定义前景和背景 6 1 2 cv grabCut 6 1 3 cv compare 6 1 4 算法实现 Github代码地址 xff1a GitHub Qinong Open
  • 相机标定 - (02) - 相机标定步骤与原理

    目录 2 相机标定步骤 2 1 张正有标定操作步骤 2 2 张正有标定原理 2 相机标定步骤与原理 参考文章 xff1a 三步骤详解张正友标定法 谜之 摄影爱好者的博客 CSDN博客 1998年 xff0c 张正友提出了基于二维平面靶标的标
  • 相机标定 - (03) - matlab单目相机标定

    目录 3 matlab单目相机标定 3 1 环境配置 3 2 matlab单目相机标定 3 matlab单目相机标定 3 1 环境配置 参考文章 xff1a https www cnblogs com Sandals little p 17
  • SLAM面试笔记(4) — 企业面试汇总

    目录 1 大疆 一面 xff08 50min xff09 二面 xff08 30min xff09 三面 xff08 30min xff09 2 华为 一面 xff08 30min xff09 二面 xff08 30min xff09 三面
  • ORB-SLAM2的稠密重建实战(1) — 流程与函数功能说明

    目录 0 系统整体流程 1 输出信息 2 初始化文件 3 初始化并运行追踪线程Tracking Step1 xff1a 地图初始化 Step2 xff1a 初始化成功 xff08 mbOnlyTracking xff09 Step3 xff
  • SLAM面试笔记(5) — ROS面试

    目录 1 ROS概述 2 ROS通信机制 问题 xff1a 服务通信概念 问题 xff1a 服务通信理论模型 问题 xff1a 参数服务器概念 问题 xff1a 参数服务器理论模型 问题 xff1a 参数服务器实现函数 3 ROS常用命令
  • 多线程常见的面试题

    多线程常见的面试题 xff1a 1 什么是线程和进程 线程与进程的关系 区别及优缺点 xff1f 进程是程序的一次执行过程 xff0c 是系统运行程序的基本单位 xff0c 因此进程是动态的 系统运行一个程序即是一个进程从创建 xff0c
  • docker 错误 WARNING: IPv4 forwarding is disabled. Networking will not work.

    这个错误出现在使用 docker 的服务器上 xff0c 当你进入 docker 容器时 xff0c 如果出现这样的 WARNING 提示 xff0c 则表示服务器没有开启 IPv4 转发 xff0c 按照本文的方法配置开启转发即可 错误提
  • 嵌入式中异常/中断/事件的区别

    嵌入式中异常 xff0f 中断 xff0f 事件的区别 Cortex M3在内核水平上搭载了一个异常响应系统 xff0c 支持为数众多的系统异常和外部中断 其中 xff0c 编号1 15的对应系统异常 xff0c 大于等于16的则都是外部中
  • 【起航】OpenHarmony远征02

    OpenHarmony内核 目前OpenHarmony针对不同量级的系统 xff0c 可以使用不同形态的内核 xff0c 轻量和小型的系统可以使用Liteos xff0c 小型和标准系统可以使用Linux Liteos系统是面向IOT领域的
  • momenta面经总结

    一 C 43 43 01 堆和栈的区别 xff0c 栈的静态分配和动态分配 xff1f 栈由操作系统分配释放 xff0c 用于存放函数的参数值 局部变量等 xff0c 栈中存储的数据的生命周期随着函数的执行完成而结束 堆由开发人员分配和释放
  • Orbslam2使用opencv4解决cv_bridge冲突问题

    在研究orbslam2在opencv4下使用会和cv bridge4冲突 解决方法 xff1a 1条消息 ROS学习 xff1a cv bridge与opencv版本冲突三种解决方案 Mr Qin 的博客 CSDN博客 cv bridge
  • 智能车浅谈——方向控制篇

    文章目录 前言自动控制理论人工控制系统自动控制 方向控制典型环节对应典型环节分析给定环节与给定量比较环节与偏差量控制环节与控制量执行机构舵机PWM技术舵机中值及限幅转向控制 被控对象与被控量反馈对象与反馈量 控制思路结束语智能车系列文章汇总
  • 嵌入式学习笔记——使用寄存器编程操作GPIO

    使用寄存器编程操作GPIO 前言GPIO相关的寄存器GPIO 端口模式寄存器 GPIOx MODER x 61 A I 位操作 GPIO 端口输出类型寄存器 GPIOx OTYPER x 61 A I GPIO 端口输出速度寄存器 GPIO
  • 2021-基于卷积和LSTM神经网络的视频分类时间融合方法在暴力检测中的应用

    A Temporal Fusion Approach for Video Classification with Convolutional and LSTM Neural Networks Applied to Violence Dete
  • uni-app(Vue)直播拉流

    html span class token tag span class token tag span class token punctuation lt span div span span class token attr name
  • Docker 容器常见故障排查及处理

    Docker 容器常见故障排查及处理 本文来源于公司论坛发表的帖子 Docker是一种相对使用较简单的容器 xff0c 我们可以通过以下几种方式获取信息 xff1a 1 通过docker run执行命令 xff0c 或许返回信息 2 通过d
  • CMake教程

    本文参考 xff1a 1 https blog csdn net whahu1989 article details 82078563 2 https blog csdn net kai zone article details 82656
  • docker / containerd 错误 panic: invalid freelist page: 162, page type is leaf

    错误描述 containerd 服务启动失败 xff0c 使用命令 journalctl xe u containerd 查看日志如下所示 xff1a span class token punctuation span root 64 k8