测试机器, 昨天下午还可用, 晚上报错, 发现有些命令提示:
[root@localhost ~]# ldd /home/work/kunlun/output/bin/xpu_smi /home/work/kunlun/output/bin/xpu_smi: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6) linux-vdso.so.1 => (0x00007ffc0e528000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f04a4d8e000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f04a4b72000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f04a478e000) libm.so.6 => /lib64/libm.so.6 (0x00007f04a448c000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f04a4276000) libc.so.6 => /lib64/libc.so.6 (0x00007f04a3ea8000) /lib64/ld-linux-x86-64.so.2 (0x00007f04a4f92000)
因为三方团队人员都在用这个机器, 问谁都说没动环境, 自己找原因了.
1、首先确定是环境问题.
2、查看系统是否有GLIBC_2.18 :
[root@localhost ~]# strings /lib64/libstdc++.so.6| grep GLIBC_ GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.14 GLIBC_2.6 GLIBC_2.4 GLIBC_2.18 GLIBC_2.16 GLIBC_2.3.4 GLIBC_2.17 GLIBC_2.3.2
发现有2.18.
根据报错信息提示有两个库可能有问题: 1、/lib64/libc.so.6 2、/lib64/libstdc++.so.6
分别比对正常机器和异常机器的这两个lib链接, 发现/lib64/libstdc++.so.6 链接到了libstdc++.so.6.0.28, 而正常的机器链接到了/lib64/libstdc++.so.6.0.19 .
发现问题了, 就resolve it.
ln -sf /lib64/libstdc++.so.6.0.19 /lib64/libstdc++.so.6
再次执行***_smi, 成功显示显存信息.
之后发现GLIBC not found问题, 可以直接看/lib64/libstdc++.so.6 链接.