You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04 Docker容器运行程序报错缺失memset-vec-unaligned-erms.S文件

Ubuntu 20.04 Docker容器SIGBUS崩溃问题解决方案

首先明确:GDB提示../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: No such file or directory不属于依赖缺失问题,只是GDB无法定位glibc对应的汇编源码文件,不影响根因排查。核心问题是程序触发了SIGBUS总线错误,发生在AVX2优化的memset调用阶段,可按以下步骤排查解决:

  • 排查CPU指令集兼容性
    • 先在宿主机执行grep avx2 /proc/cpuinfo,如果没有输出说明宿主机CPU不支持AVX2指令集,你运行的程序如果是强制开启AVX2编译的,就会触发该错误,需要重新编译程序适配宿主机指令集
    • 若宿主机支持AVX2,启动容器时添加--security-opt seccomp=unconfined参数关闭seccomp限制,避免Docker默认的安全规则过滤AVX2指令调用
  • 调整共享内存配置
    Docker默认分配的/dev/shm共享内存大小仅为64MB,多线程大内存消耗类应用很容易触发内存访问异常导致SIGBUS,启动容器时添加--shm-size="2g"参数,可根据应用需求调整到更大值
  • 调整程序编译参数(针对自行编译的程序)
    编译时如果添加了-mavx2、-march=native这类强制绑定当前CPU特性的参数,编译出的程序无法在更低规格的CPU宿主机上运行,可将编译参数调整为-march=x86-64生成通用架构兼容的二进制文件
  • 安装glibc调试符号(可选,用于进一步调试)
    如果需要GDB输出完整的调用栈信息,可安装对应调试包:
    echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse" >> /etc/apt/sources.list.d/ddebs.list
    apt update && apt install -y glibc-dbg libc6-dbg
    

内容的提问来源于stack exchange,提问作者patrick_corrigan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:15:09