内核bug:auth_rpcgss模块引发的容器netns内存泄露与弹性网卡残留
200 浏览量
更新于2024-08-30
收藏 352KB PDF 举报
【内核模块auth_rpcgss】netns引用计数泄露引发的问题
在这个Linux内核bug中,关键问题是内核模块auth_rpcgss中的netns(网络命名空间)引用计数管理出现了漏洞。当特权容器(privileged containers)启用use-gss-proxy功能时,容器终止后,其相关的网络命名空间未能正确释放,导致虚拟弹性网卡(virtual Ethernet card, VETH)残留,从而引发了内存泄露问题。这在长期运行的服务器上尤为明显,且只在特定环境下,如在Kubernetes(k8s)的privileged容器场景中,才会出现弹性网卡残留的现象。
定位过程中的关键步骤包括:
1. **识别问题现象**:问题在生产环境中稳定重现,但在容器团队的测试环境中难以复现,这表明问题可能依赖于某些特定条件或配置。
2. **追踪内核行为**:通过ftrace(Linux系统调用跟踪工具)来分析veth_dellink()函数,这是删除弹性网卡的核心函数。研究异常情况下的函数调用栈,以便找出残留网卡的原因。
3. **设置kprobe事件**:编写ftrace脚本,捕获pveth_dellink()函数的执行,以及与其相关的堆栈信息,以对比正常删除和残留网卡时的不同行为。
4. **深入剖析**:对比分析正常情况下veth_dellink()的调用路径和出现残留网卡时的差异,可能是由于引用计数处理不当,或者与netns的生命周期管理有关的其他因素。
5. **未解决问题**:虽然upstream(内核源代码维护者)尚未修复此bug,但受影响的组织已经内部开发了patch,并正在等待测试验证。
这个问题的解决需要深入了解内核网络命名空间的管理机制、gss-proxy相关模块的交互以及特权容器环境下的特殊性。了解并修复这一bug对于维护高可用性和内存管理的稳定性至关重要,同时也有助于提升对Linux内核深层次工作的理解。
2010-03-30 上传
2009-08-10 上传
2021-07-05 上传
2021-06-26 上传
2020-10-22 上传
2021-04-03 上传
2021-10-09 上传
点击了解资源详情
2023-03-24 上传
2023-03-24 上传
weixin_38631738
- 粉丝: 4
- 资源: 971
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载