ffmpeg 在 libx265.so 中发生段错误 0 错误 4

ffmpeg 在 libx265.so 中发生段错误 0 错误 4

使用 ffmpeg 4.2 将某些文件转码为 h265 时,我反复收到以下错误。我尝试了两个不同的操作系统,结果相同。

[84364.574137] ffmpeg[2257282]: segfault at 0 ip 00007f4f0629d440 sp 00007f4e0f7fd020 error 4 in libx265.so.179[7f4f0623b000+116f000]
[84364.593586] Code: 85 75 0c 00 00 85 c0 0f 85 7b 03 00 00 48 8b 43 08 f2 0f 10 83 58 01 00 00 4c 8b 80 98 00 00 00 4c 8b 48 10 8b 80 e8 08 00 00 <49> 8b 08 49 8b 31 48 8b 39 48 8b 16 f2 0f 10 9e c0 05 00 00 f2 0f
[89693.205703] ffmpeg[2349621]: segfault at 0 ip 00007fdc4116b440 sp 00007fdbd1d6f020 error 4 in libx265.so.179[7fdc41109000+116f000]
[89693.225147] Code: 85 75 0c 00 00 85 c0 0f 85 7b 03 00 00 48 8b 43 08 f2 0f 10 83 58 01 00 00 4c 8b 80 98 00 00 00 4c 8b 48 10 8b 80 e8 08 00 00 <49> 8b 08 49 8b 31 48 8b 39 48 8b 16 f2 0f 10 9e c0 05 00 00 f2 0f
[90604.112280] ffmpeg[2388193]: segfault at 0 ip 00007f41326b3440 sp 00007f40a15a6020 error 4 in libx265.so.179[7f4132651000+116f000]
[90604.131793] Code: 85 75 0c 00 00 85 c0 0f 85 7b 03 00 00 48 8b 43 08 f2 0f 10 83 58 01 00 00 4c 8b 80 98 00 00 00 4c 8b 48 10 8b 80 e8 08 00 00 <49> 8b 08 49 8b 31 48 8b 39 48 8b 16 f2 0f 10 9e c0 05 00 00 f2 0f
[95462.996431] ffmpeg[2477426]: segfault at 0 ip 00007f43d7eef440 sp 00007f430fffe020 error 4 in libx265.so.179[7f43d7e8d000+116f000]
[95463.015906] Code: 85 75 0c 00 00 85 c0 0f 85 7b 03 00 00 48 8b 43 08 f2 0f 10 83 58 01 00 00 4c 8b 80 98 00 00 00 4c 8b 48 10 8b 80 e8 08 00 00 <49> 8b 08 49 8b 31 48 8b 39 48 8b 16 f2 0f 10 9e c0 05 00 00 f2 0f

它可能与我正在运行的硬件(threadripper 1950x)有关,因为它似乎没有发生在我的 xeon 上,但是在线阅读大多数答案表明这是一个与未引用的指针、内存泄漏或类似问题有关的软件相关问题。

我所得到的记忆也经过了数小时的记忆测试。

有人能建议我怎样才能彻底解决这个问题吗?

答案1

这可能不是一个很好的解决方案,但我现在使用“nosmt”启动我的系统(如果您愿意,还有几种方法可以使用 /sys/ 中的文件来打开和关闭 SMT。)。没有这个,我遇到了与您的几乎相同的间歇性崩溃,使用 nosmt 不会崩溃,并且 ffmpeg 的性能在启动时略有提升。

(几个月前发生的一次崩溃:)

[24432.479772] ffmpeg[93060]: segfault at 0 ip 00007f9ab50763a0 sp 00007f9a6e7fafa0 error 4 in libx265.so.179[7f9ab4b80000+e98000]
[24432.479792] Code: 85 8d 0c 00 00 85 c0 0f 85 7b 03 00 00 48 8b 43 08 f2 0f 10 83 58 01 00 00 4c 8b 80 98 00 00 00 4c 8b 48 10 8b 80 e8 08 00 00 <49> 8b 08 49 8b 31 48 8b 39 48 8b 16 f2 0f 10 9e c0 05 00 00 f2 0f

(我现在正在运行一些带有 libx265.so.199 的较新版本的 ffmpeg,大约一周前我测试 smt 时仍然出现同样的崩溃。)

因此我怀疑是 CPU 存在某些缺陷(我对此表示怀疑,因为当我使用 SMT 时,其他东西(包括压力测试)都没有崩溃)。或者 libx265 存在某些竞争条件(换句话说,smt 线程运行不均匀,崩溃的线程“过早”结束,没有等待它尝试使用的数据准备就绪。)

相关内容