#9709(undetermined:new): nvenc-segfault-at-eof
#9709: nvenc-segfault-at-eof -------------------------------------+------------------------------------- Reporter: ajaraptor | Type: defect Status: new | Priority: normal Component: | Version: undetermined | unspecified Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Summary of the bug: All versions of compiled ffmpeg 5.0 on Ubuntu 20.04 now produce a segfault on completion of any file using hevc_nvenc encode. This does not happen in any ffmpeg version before version 5.0. Used release 5.0, then updated to release N-106467-ge301a24fa1. Same issue. Have to revert to a compiled version of 4.4.1 to avoid this error. Commands plus gdb and valgrind output are below. The problem seems to be between ffmpeg/hevc_nvenc and the nvidia drivers. Sample ffmpeg log output is attached. OS Linux sol 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux NVIDIA DRIVER INFO Driver Version: 470.103.01 CUDA Version: 11.4 Release info for this note (compiled 1 April 22): ffmpeg version N-106467-ge301a24fa1 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra- ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/root/bin --enable-debug=2 --enable-gpl --enable-version3 --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable- libssh --enable-libzmq --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libzvbi --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libzimg --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-opencl --enable-libcdio --enable- libdav1d --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libfdk-aac --enable-libshine --enable- libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable- libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable- libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint --enable-nonfree libavutil 57. 24.101 / 57. 24.101 libavcodec 59. 25.100 / 59. 25.100 libavformat 59. 20.101 / 59. 20.101 libavdevice 59. 6.100 / 59. 6.100 libavfilter 8. 29.100 / 8. 29.100 libswscale 6. 6.100 / 6. 6.100 libswresample 4. 6.100 / 4. 6.100 libpostproc 56. 5.100 / 56. 5.100 gdb --args ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv valgrind -s ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv SYSLOG OUTPUT SAMPLES ffmpeg[9305]: segfault at 0 ip 00007f1ab984cb0b sp 00007ffd3dfa0a38 error 4 in libc-2.31.so[7f1ab97b3000+178000] ffmpeg[9814]: segfault at 0 ip 00007f48b26aab0b sp 00007ffe2ae67d08 error 4 in libc-2.31.so[7f48b2611000+178000] ffmpeg[12504]: segfault at 0 ip 00007f4ee0a39b0b sp 00007fffdaa4e3e8 error 4 in libc-2.31.so[7f4ee09a0000+178000] ffmpeg[51522]: segfault at 0 ip 00007f40e9ba4b0b sp 00007ffcf332ac78 error 4 in libc-2.31.so[7f40e9b0b000+178000] GDB OUTPUT Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:142 142 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) bt #0 memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned- erms.S:142 #1 0x00007fffe411e4d2 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #2 0x00007fffe411e7ec in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #3 0x00007fffe4117364 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #4 0x00007fffe4117549 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #5 0x00007fffe41179c5 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #6 0x00007fffe4115589 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #7 0x00007fffe412406d in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #8 0x0000555556427b78 in nvenc_send_frame (avctx=avctx@entry=0x555557332a80, frame=frame@entry=0x55555836c7c0) at libavcodec/nvenc.c:2431 #9 0x0000555556429048 in ff_nvenc_receive_packet (avctx=0x555557332a80, pkt=0x555558366500) at libavcodec/nvenc.c:2476 #10 0x0000555555c9c7ca in encode_receive_packet_internal (avctx=avctx@entry=0x555557332a80, avpkt=0x555558366500) at libavcodec/codec_internal.h:207 #11 0x0000555555c9cdd1 in avcodec_send_frame (avctx=0x555557332a80, frame=0x0) at libavcodec/encode.c:382 #12 0x0000555555763982 in flush_encoders () at fftools/ffmpeg.c:1977 #13 transcode () at fftools/ffmpeg.c:4708 #14 0x000055555573dfae in main (argc=45, argv=0x7fffffffe168) at fftools/ffmpeg.c:4904 (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff2556aeb to 0x7ffff2556b2b: 0x00007ffff2556aeb <__memmove_chk_sse2_unaligned+11>: (bad) 0x00007ffff2556aec <__memmove_chk_sse2_unaligned+12>: add %cl,(%rdi) 0x00007ffff2556aee: (bad) 0x00007ffff2556aef: add %dh,%bl 0x00007ffff2556af1 <memcpy+1>: nop %edx 0x00007ffff2556af4 <memcpy+4>: mov %rdi,%rax 0x00007ffff2556af7 <memcpy+7>: cmp $0x10,%rdx 0x00007ffff2556afb <memcpy+11>: jb 0x7ffff2556c1b <__memmove_sse2_unaligned_erms+75> 0x00007ffff2556b01 <memcpy+17>: cmp $0x20,%rdx 0x00007ffff2556b05 <memcpy+21>: ja 0x7ffff2556c6a <__memmove_sse2_unaligned_erms+154> => 0x00007ffff2556b0b <memcpy+27>: movups (%rsi),%xmm0 0x00007ffff2556b0e <memcpy+30>: movups -0x10(%rsi,%rdx,1),%xmm1 0x00007ffff2556b13 <memcpy+35>: movups %xmm0,(%rdi) 0x00007ffff2556b16 <memcpy+38>: movups %xmm1,-0x10(%rdi,%rdx,1) 0x00007ffff2556b1b <memcpy+43>: retq 0x00007ffff2556b1c: nopl 0x0(%rax) 0x00007ffff2556b20 <__mempcpy_chk_erms+0>: endbr64 0x00007ffff2556b24 <__mempcpy_chk_erms+4>: cmp %rdx,%rcx 0x00007ffff2556b27 <__mempcpy_chk_erms+7>: jb 0x7ffff25c9370 <__GI___chk_fail> End of assembler dump. (gdb) info all-registers rax 0x5555598e2fa0 93825063071648 rbx 0x555558f60a40 93825053100608 rcx 0x1 1 rdx 0x10 16 rsi 0x0 0 rdi 0x5555598e2fa0 93825063071648 rbp 0x0 0x0 rsp 0x7fffffffb268 0x7fffffffb268 r8 0x0 0 r9 0x7fffffffb198 140737488335256 r10 0x7fffffffb190 140737488335248 r11 0x6247546d 1648841837 r12 0x555558f9bdf0 93825053343216 r13 0x5555598e5f60 93825063083872 r14 0x1 1 r15 0x5555592e4100 93825056784640 rip 0x7ffff2556b0b 0x7ffff2556b0b <memcpy+27> eflags 0x10287 [ CF PF SF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st1 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st2 <invalid float value> (raw 0xffff0000000002000200) st3 <invalid float value> (raw 0xffff0200020002000200) st4 <invalid float value> (raw 0xffff1010101010101010) st5 <invalid float value> (raw 0xffff1010101010101010) st6 0 (raw 0x00000000000000000000) st7 <invalid float value> (raw 0xffff0000000000000000) fctrl 0x37f 895 fstat 0x0 0 --Type <RET> for more, q to quit, c to continue without paging-- ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 mxcsr 0x1fa8 [ OE PE IM DM ZM OM UM PM ] bndcfgu {raw = 0x0, config = {base = 0x0, reserved = 0x0, preserved = 0x0, enabled = 0x0}} {raw = 0x0, config = {base = 0, reserved = 0, preserved = 0, enabled = 0}} bndstatus {raw = 0x0, status = {bde = 0x0, error = 0x0}} {raw = 0x0, status = {bde = 0, error = 0}} ymm0 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm1 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf5, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef5, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef5, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef5, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef5, 0x0}} ymm2 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf3, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef3, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef3, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef3, 0x0, 0x0}, v2_int128 = {0x7ef300005555588c6da0, 0x0}} ymm3 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf5, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef5, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef5, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef5, 0x0, 0x0}, v2_int128 = {0x7ef500005555588c6da0, 0x0}} ymm4 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm5 {v8_float = {0x80000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x30, 0x9d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xd4, 0x27, 0x0 <repeats 22 times>}, v16_int16 = {0x9d30, 0x588c, 0x5555, 0x0, 0x27d4, 0x0 <repeats 11 times>}, v8_int32 = {0x588c9d30, 0x5555, 0x27d4, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c9d30, 0x27d4, 0x0, 0x0}, v2_int128 = {0x27d400005555588c9d30, 0x0}} ymm6 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8--Type <RET> for more, q to quit, c to continue without paging-- = {0xed, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 23 times>}, v16_int16 = {0x7eed, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 11 times>}, v8_int32 = {0x7eed, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7eed, 0x1, 0x0, 0x0}, v2_int128 = {0x10000000000007eed, 0x0}} ymm7 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf1, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef1, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef1, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef1, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef1, 0x0}} ymm8 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x37, 0x7d, 0x7b, 0x5c, 0x70, 0x6f, 0x73, 0x28, 0x25, 0x64, 0x2c, 0x25, 0x64, 0x29, 0x7d, 0x0 <repeats 17 times>}, v16_int16 = {0x7d37, 0x5c7b, 0x6f70, 0x2873, 0x6425, 0x252c, 0x2964, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x5c7b7d37, 0x28736f70, 0x252c6425, 0x7d2964, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x28736f705c7b7d37, 0x7d2964252c6425, 0x0, 0x0}, v2_int128 = {0x7d2964252c642528736f705c7b7d37, 0x0}} ymm9 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm10 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm11 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf, 0x6, 0xac, 0x37, 0xa0, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x60f, 0x37ac, 0xfda0, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0x37ac060f, 0x3f85fda0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f85fda037ac060f, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fda037ac060f, 0x0}} ymm12 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa4, 0x61, 0xa0, 0xb, 0x6a, 0xf2, 0xe1, 0x3e, 0x0 <repeats 24 times>}, v16_int16 = {0x61a4, 0xba0, 0xf26a, 0x3ee1, 0x0 <repeats 12 times>}, v8_int32 = {0xba061a4, 0x3ee1f26a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ee1f26a0ba061a4, 0x0, 0x0, 0x0}, v2_int128 = {0x3ee1f26a0ba061a4, 0x0}} ymm13 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x8c, 0x9e, 0xee, 0xa6, 0xef, 0xf6, 0x67, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x9e8c, 0xa6ee, 0xf6ef, 0x3f67, 0x0 <repeats 12 times>}, v8_int32 = {0xa6ee9e8c, 0x3f67f6ef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f67f6efa6ee9e8c, 0x0, 0x0, 0x0}, v2_int128 = {0x3f67f6efa6ee9e8c, 0x0}} ymm14 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa3, 0xa7, 0xbb, 0xe9, 0xbb, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0xa7a3, 0xe9bb, 0xfdbb, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0xe9bba7a3, 0x3f85fdbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64--Type <RET> for more, q to quit, c to continue without paging-- = {0x3f85fdbbe9bba7a3, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fdbbe9bba7a3, 0x0}} ymm15 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x52, 0x55, 0x15, 0x0, 0xc0, 0xff, 0xef, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x5552, 0x15, 0xffc0, 0x3fef, 0x0 <repeats 12 times>}, v8_int32 = {0x155552, 0x3fefffc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3fefffc000155552, 0x0, 0x0, 0x0}, v2_int128 = {0x3fefffc000155552, 0x0}} bnd0 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd2 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd3 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 VALGRIND OUTPUT ==157472== Invalid read of size 8 4608kB time=00:00:59.96 bitrate= 629.5kbits/s speed=0.235x ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== Process terminating with default action of signal 11 (SIGSEGV) ==157472== Access not within mapped region at address 0x0 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== If you believe this happened as a result of a stack ==157472== overflow in your program's main thread (unlikely but ==157472== possible), you can try to increase the size of the ==157472== main thread stack using the --main-stacksize= flag. ==157472== The main thread stack size used in this run was 8388608. ==157472== ==157472== HEAP SUMMARY: ==157472== in use at exit: 115,961,685 bytes in 18,364 blocks ==157472== total heap usage: 338,204 allocs, 319,840 frees, 254,748,932 bytes allocated ==157472== ==157472== LEAK SUMMARY: ==157472== definitely lost: 72 bytes in 1 blocks ==157472== indirectly lost: 0 bytes in 0 blocks ==157472== possibly lost: 134,240 bytes in 1,446 blocks ==157472== still reachable: 115,827,373 bytes in 16,917 blocks ==157472== of which reachable via heuristic: ==157472== newarray : 1,536 bytes in 16 blocks ==157472== suppressed: 0 bytes in 0 blocks ==157472== Rerun with --leak-check=full to see details of leaked memory ==157472== ==157472== Use --track-origins=yes to see where uninitialised values come from ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) ==157472== ==157472== 1 errors in context 1 of 2: ==157472== Invalid read of size 8 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== 1 errors in context 2 of 2: ==157472== Conditional jump or move depends on uninitialised value(s) ==157472== at 0x25963AB4: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x25960957: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x259B6421: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x2571B373: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257296CA: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2D366D: nvenc_open_session (nvenc.c:359) ==157472== by 0x2D7014: nvenc_check_device (nvenc.c:614) ==157472== by 0x2D7014: nvenc_setup_device (nvenc.c:737) ==157472== by 0x2D7014: ff_nvenc_encode_init (nvenc.c:1760) ==157472== by 0x77ED43: avcodec_open2 (avcodec.c:347) ==157472== by 0x310FCC: init_output_stream.constprop.0 (ffmpeg.c:3493) ==157472== by 0x313052: init_output_stream_wrapper (ffmpeg.c:987) ==157472== by 0x313052: do_video_out (ffmpeg.c:1158) ==157472== by 0x3144BD: reap_filters (ffmpeg.c:1540) ==157472== by 0x318182: transcode_step (ffmpeg.c:4644) ==157472== by 0x318182: transcode (ffmpeg.c:4688) ==157472== ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Segmentation fault -- Ticket URL: <https://trac.ffmpeg.org/ticket/9709> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9709: nvenc-segfault-at-eof -------------------------------------+------------------------------------- Reporter: ajaraptor | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by ajaraptor): * Attachment "nvenc-segfault-at-eof.log" added. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9709> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9709: nvenc-segfault-at-eof -------------------------------------+------------------------------------- Reporter: ajaraptor | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: git-master | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by ajaraptor): * version: unspecified => git-master Old description:
Summary of the bug:
All versions of compiled ffmpeg 5.0 on Ubuntu 20.04 now produce a segfault on completion of any file using hevc_nvenc encode. This does not happen in any ffmpeg version before version 5.0.
Used release 5.0, then updated to release N-106467-ge301a24fa1. Same issue. Have to revert to a compiled version of 4.4.1 to avoid this error.
Commands plus gdb and valgrind output are below. The problem seems to be between ffmpeg/hevc_nvenc and the nvidia drivers. Sample ffmpeg log output is attached.
OS
Linux sol 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
NVIDIA DRIVER INFO
Driver Version: 470.103.01 CUDA Version: 11.4
Release info for this note (compiled 1 April 22):
ffmpeg version N-106467-ge301a24fa1 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra- ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/root/bin --enable-debug=2 --enable-gpl --enable-version3 --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable- libssh --enable-libzmq --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libzvbi --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libzimg --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-opencl --enable-libcdio --enable- libdav1d --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libfdk-aac --enable-libshine --enable- libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable- libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable- libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint --enable-nonfree libavutil 57. 24.101 / 57. 24.101 libavcodec 59. 25.100 / 59. 25.100 libavformat 59. 20.101 / 59. 20.101 libavdevice 59. 6.100 / 59. 6.100 libavfilter 8. 29.100 / 8. 29.100 libswscale 6. 6.100 / 6. 6.100 libswresample 4. 6.100 / 4. 6.100 libpostproc 56. 5.100 / 56. 5.100
gdb --args ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv
valgrind -s ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv
SYSLOG OUTPUT SAMPLES
ffmpeg[9305]: segfault at 0 ip 00007f1ab984cb0b sp 00007ffd3dfa0a38 error 4 in libc-2.31.so[7f1ab97b3000+178000] ffmpeg[9814]: segfault at 0 ip 00007f48b26aab0b sp 00007ffe2ae67d08 error 4 in libc-2.31.so[7f48b2611000+178000] ffmpeg[12504]: segfault at 0 ip 00007f4ee0a39b0b sp 00007fffdaa4e3e8 error 4 in libc-2.31.so[7f4ee09a0000+178000] ffmpeg[51522]: segfault at 0 ip 00007f40e9ba4b0b sp 00007ffcf332ac78 error 4 in libc-2.31.so[7f40e9b0b000+178000]
GDB OUTPUT
Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:142 142 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) bt #0 memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned- erms.S:142 #1 0x00007fffe411e4d2 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #2 0x00007fffe411e7ec in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #3 0x00007fffe4117364 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #4 0x00007fffe4117549 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #5 0x00007fffe41179c5 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #6 0x00007fffe4115589 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #7 0x00007fffe412406d in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #8 0x0000555556427b78 in nvenc_send_frame (avctx=avctx@entry=0x555557332a80, frame=frame@entry=0x55555836c7c0) at libavcodec/nvenc.c:2431 #9 0x0000555556429048 in ff_nvenc_receive_packet (avctx=0x555557332a80, pkt=0x555558366500) at libavcodec/nvenc.c:2476 #10 0x0000555555c9c7ca in encode_receive_packet_internal (avctx=avctx@entry=0x555557332a80, avpkt=0x555558366500) at libavcodec/codec_internal.h:207 #11 0x0000555555c9cdd1 in avcodec_send_frame (avctx=0x555557332a80, frame=0x0) at libavcodec/encode.c:382 #12 0x0000555555763982 in flush_encoders () at fftools/ffmpeg.c:1977 #13 transcode () at fftools/ffmpeg.c:4708 #14 0x000055555573dfae in main (argc=45, argv=0x7fffffffe168) at fftools/ffmpeg.c:4904
(gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff2556aeb to 0x7ffff2556b2b: 0x00007ffff2556aeb <__memmove_chk_sse2_unaligned+11>: (bad) 0x00007ffff2556aec <__memmove_chk_sse2_unaligned+12>: add %cl,(%rdi) 0x00007ffff2556aee: (bad) 0x00007ffff2556aef: add %dh,%bl 0x00007ffff2556af1 <memcpy+1>: nop %edx 0x00007ffff2556af4 <memcpy+4>: mov %rdi,%rax 0x00007ffff2556af7 <memcpy+7>: cmp $0x10,%rdx 0x00007ffff2556afb <memcpy+11>: jb 0x7ffff2556c1b <__memmove_sse2_unaligned_erms+75> 0x00007ffff2556b01 <memcpy+17>: cmp $0x20,%rdx 0x00007ffff2556b05 <memcpy+21>: ja 0x7ffff2556c6a <__memmove_sse2_unaligned_erms+154> => 0x00007ffff2556b0b <memcpy+27>: movups (%rsi),%xmm0 0x00007ffff2556b0e <memcpy+30>: movups -0x10(%rsi,%rdx,1),%xmm1 0x00007ffff2556b13 <memcpy+35>: movups %xmm0,(%rdi) 0x00007ffff2556b16 <memcpy+38>: movups %xmm1,-0x10(%rdi,%rdx,1) 0x00007ffff2556b1b <memcpy+43>: retq 0x00007ffff2556b1c: nopl 0x0(%rax) 0x00007ffff2556b20 <__mempcpy_chk_erms+0>: endbr64 0x00007ffff2556b24 <__mempcpy_chk_erms+4>: cmp %rdx,%rcx 0x00007ffff2556b27 <__mempcpy_chk_erms+7>: jb 0x7ffff25c9370 <__GI___chk_fail> End of assembler dump.
(gdb) info all-registers rax 0x5555598e2fa0 93825063071648 rbx 0x555558f60a40 93825053100608 rcx 0x1 1 rdx 0x10 16 rsi 0x0 0 rdi 0x5555598e2fa0 93825063071648 rbp 0x0 0x0 rsp 0x7fffffffb268 0x7fffffffb268 r8 0x0 0 r9 0x7fffffffb198 140737488335256 r10 0x7fffffffb190 140737488335248 r11 0x6247546d 1648841837 r12 0x555558f9bdf0 93825053343216 r13 0x5555598e5f60 93825063083872 r14 0x1 1 r15 0x5555592e4100 93825056784640 rip 0x7ffff2556b0b 0x7ffff2556b0b <memcpy+27> eflags 0x10287 [ CF PF SF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st1 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st2 <invalid float value> (raw 0xffff0000000002000200) st3 <invalid float value> (raw 0xffff0200020002000200) st4 <invalid float value> (raw 0xffff1010101010101010) st5 <invalid float value> (raw 0xffff1010101010101010) st6 0 (raw 0x00000000000000000000) st7 <invalid float value> (raw 0xffff0000000000000000) fctrl 0x37f 895 fstat 0x0 0 --Type <RET> for more, q to quit, c to continue without paging-- ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 mxcsr 0x1fa8 [ OE PE IM DM ZM OM UM PM ] bndcfgu {raw = 0x0, config = {base = 0x0, reserved = 0x0, preserved = 0x0, enabled = 0x0}} {raw = 0x0, config = {base = 0, reserved = 0, preserved = 0, enabled = 0}} bndstatus {raw = 0x0, status = {bde = 0x0, error = 0x0}} {raw = 0x0, status = {bde = 0, error = 0}} ymm0 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm1 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf5, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef5, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef5, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef5, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef5, 0x0}} ymm2 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf3, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef3, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef3, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef3, 0x0, 0x0}, v2_int128 = {0x7ef300005555588c6da0, 0x0}} ymm3 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf5, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef5, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef5, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef5, 0x0, 0x0}, v2_int128 = {0x7ef500005555588c6da0, 0x0}} ymm4 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm5 {v8_float = {0x80000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x30, 0x9d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xd4, 0x27, 0x0 <repeats 22 times>}, v16_int16 = {0x9d30, 0x588c, 0x5555, 0x0, 0x27d4, 0x0 <repeats 11 times>}, v8_int32 = {0x588c9d30, 0x5555, 0x27d4, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c9d30, 0x27d4, 0x0, 0x0}, v2_int128 = {0x27d400005555588c9d30, 0x0}} ymm6 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8--Type <RET> for more, q to quit, c to continue without paging-- = {0xed, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 23 times>}, v16_int16 = {0x7eed, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 11 times>}, v8_int32 = {0x7eed, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7eed, 0x1, 0x0, 0x0}, v2_int128 = {0x10000000000007eed, 0x0}} ymm7 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf1, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef1, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef1, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef1, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef1, 0x0}} ymm8 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x37, 0x7d, 0x7b, 0x5c, 0x70, 0x6f, 0x73, 0x28, 0x25, 0x64, 0x2c, 0x25, 0x64, 0x29, 0x7d, 0x0 <repeats 17 times>}, v16_int16 = {0x7d37, 0x5c7b, 0x6f70, 0x2873, 0x6425, 0x252c, 0x2964, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x5c7b7d37, 0x28736f70, 0x252c6425, 0x7d2964, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x28736f705c7b7d37, 0x7d2964252c6425, 0x0, 0x0}, v2_int128 = {0x7d2964252c642528736f705c7b7d37, 0x0}} ymm9 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm10 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm11 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf, 0x6, 0xac, 0x37, 0xa0, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x60f, 0x37ac, 0xfda0, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0x37ac060f, 0x3f85fda0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f85fda037ac060f, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fda037ac060f, 0x0}} ymm12 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa4, 0x61, 0xa0, 0xb, 0x6a, 0xf2, 0xe1, 0x3e, 0x0 <repeats 24 times>}, v16_int16 = {0x61a4, 0xba0, 0xf26a, 0x3ee1, 0x0 <repeats 12 times>}, v8_int32 = {0xba061a4, 0x3ee1f26a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ee1f26a0ba061a4, 0x0, 0x0, 0x0}, v2_int128 = {0x3ee1f26a0ba061a4, 0x0}} ymm13 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x8c, 0x9e, 0xee, 0xa6, 0xef, 0xf6, 0x67, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x9e8c, 0xa6ee, 0xf6ef, 0x3f67, 0x0 <repeats 12 times>}, v8_int32 = {0xa6ee9e8c, 0x3f67f6ef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f67f6efa6ee9e8c, 0x0, 0x0, 0x0}, v2_int128 = {0x3f67f6efa6ee9e8c, 0x0}} ymm14 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa3, 0xa7, 0xbb, 0xe9, 0xbb, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0xa7a3, 0xe9bb, 0xfdbb, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0xe9bba7a3, 0x3f85fdbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64--Type <RET> for more, q to quit, c to continue without paging-- = {0x3f85fdbbe9bba7a3, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fdbbe9bba7a3, 0x0}} ymm15 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x52, 0x55, 0x15, 0x0, 0xc0, 0xff, 0xef, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x5552, 0x15, 0xffc0, 0x3fef, 0x0 <repeats 12 times>}, v8_int32 = {0x155552, 0x3fefffc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3fefffc000155552, 0x0, 0x0, 0x0}, v2_int128 = {0x3fefffc000155552, 0x0}} bnd0 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd2 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd3 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1
VALGRIND OUTPUT
==157472== Invalid read of size 8 4608kB time=00:00:59.96 bitrate= 629.5kbits/s speed=0.235x ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== Process terminating with default action of signal 11 (SIGSEGV) ==157472== Access not within mapped region at address 0x0 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== If you believe this happened as a result of a stack ==157472== overflow in your program's main thread (unlikely but ==157472== possible), you can try to increase the size of the ==157472== main thread stack using the --main-stacksize= flag. ==157472== The main thread stack size used in this run was 8388608. ==157472== ==157472== HEAP SUMMARY: ==157472== in use at exit: 115,961,685 bytes in 18,364 blocks ==157472== total heap usage: 338,204 allocs, 319,840 frees, 254,748,932 bytes allocated ==157472== ==157472== LEAK SUMMARY: ==157472== definitely lost: 72 bytes in 1 blocks ==157472== indirectly lost: 0 bytes in 0 blocks ==157472== possibly lost: 134,240 bytes in 1,446 blocks ==157472== still reachable: 115,827,373 bytes in 16,917 blocks ==157472== of which reachable via heuristic: ==157472== newarray : 1,536 bytes in 16 blocks ==157472== suppressed: 0 bytes in 0 blocks ==157472== Rerun with --leak-check=full to see details of leaked memory ==157472== ==157472== Use --track-origins=yes to see where uninitialised values come from ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) ==157472== ==157472== 1 errors in context 1 of 2: ==157472== Invalid read of size 8 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== 1 errors in context 2 of 2: ==157472== Conditional jump or move depends on uninitialised value(s) ==157472== at 0x25963AB4: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x25960957: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x259B6421: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x2571B373: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257296CA: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2D366D: nvenc_open_session (nvenc.c:359) ==157472== by 0x2D7014: nvenc_check_device (nvenc.c:614) ==157472== by 0x2D7014: nvenc_setup_device (nvenc.c:737) ==157472== by 0x2D7014: ff_nvenc_encode_init (nvenc.c:1760) ==157472== by 0x77ED43: avcodec_open2 (avcodec.c:347) ==157472== by 0x310FCC: init_output_stream.constprop.0 (ffmpeg.c:3493) ==157472== by 0x313052: init_output_stream_wrapper (ffmpeg.c:987) ==157472== by 0x313052: do_video_out (ffmpeg.c:1158) ==157472== by 0x3144BD: reap_filters (ffmpeg.c:1540) ==157472== by 0x318182: transcode_step (ffmpeg.c:4644) ==157472== by 0x318182: transcode (ffmpeg.c:4688) ==157472== ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Segmentation fault
New description: -- -- Ticket URL: <https://trac.ffmpeg.org/ticket/9709#comment:1> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9709: nvenc-segfault-at-eof -------------------------------------+------------------------------------- Reporter: ajaraptor | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: git-master | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Description changed by ajaraptor: Old description: New description: Summary of the bug: All versions of compiled ffmpeg 5.0 on Ubuntu 20.04 now produce a segfault on completion of any file using hevc_nvenc encode. This does not happen in any ffmpeg version before version 5.0. Used release 5.0, then updated to release N-106467-ge301a24fa1. Same issue. Have to revert to a compiled version of 4.4.1 to avoid this error. Commands plus gdb and valgrind output are below. The problem seems to be between ffmpeg/hevc_nvenc and the nvidia drivers. Sample ffmpeg log output is attached. OS Linux sol 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux NVIDIA DRIVER INFO Driver Version: 470.103.01 CUDA Version: 11.4 Release info for this note (compiled 1 April 22): ffmpeg version N-106467-ge301a24fa1 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra- ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/root/bin --enable-debug=2 --enable-gpl --enable-version3 --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable- libssh --enable-libzmq --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libzvbi --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libzimg --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-opencl --enable-libcdio --enable- libdav1d --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libfdk-aac --enable-libshine --enable- libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable- libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable- libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint --enable-nonfree libavutil 57. 24.101 / 57. 24.101 libavcodec 59. 25.100 / 59. 25.100 libavformat 59. 20.101 / 59. 20.101 libavdevice 59. 6.100 / 59. 6.100 libavfilter 8. 29.100 / 8. 29.100 libswscale 6. 6.100 / 6. 6.100 libswresample 4. 6.100 / 4. 6.100 libpostproc 56. 5.100 / 56. 5.100 gdb --args ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv valgrind -s ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv SYSLOG OUTPUT SAMPLES ffmpeg[9305]: segfault at 0 ip 00007f1ab984cb0b sp 00007ffd3dfa0a38 error 4 in libc-2.31.so[7f1ab97b3000+178000] ffmpeg[9814]: segfault at 0 ip 00007f48b26aab0b sp 00007ffe2ae67d08 error 4 in libc-2.31.so[7f48b2611000+178000] ffmpeg[12504]: segfault at 0 ip 00007f4ee0a39b0b sp 00007fffdaa4e3e8 error 4 in libc-2.31.so[7f4ee09a0000+178000] ffmpeg[51522]: segfault at 0 ip 00007f40e9ba4b0b sp 00007ffcf332ac78 error 4 in libc-2.31.so[7f40e9b0b000+178000] GDB OUTPUT Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:142 142 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) bt #0 memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned- erms.S:142 #1 0x00007fffe411e4d2 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #2 0x00007fffe411e7ec in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #3 0x00007fffe4117364 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #4 0x00007fffe4117549 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #5 0x00007fffe41179c5 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #6 0x00007fffe4115589 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #7 0x00007fffe412406d in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #8 0x0000555556427b78 in nvenc_send_frame (avctx=avctx@entry=0x555557332a80, frame=frame@entry=0x55555836c7c0) at libavcodec/nvenc.c:2431 #9 0x0000555556429048 in ff_nvenc_receive_packet (avctx=0x555557332a80, pkt=0x555558366500) at libavcodec/nvenc.c:2476 #10 0x0000555555c9c7ca in encode_receive_packet_internal (avctx=avctx@entry=0x555557332a80, avpkt=0x555558366500) at libavcodec/codec_internal.h:207 #11 0x0000555555c9cdd1 in avcodec_send_frame (avctx=0x555557332a80, frame=0x0) at libavcodec/encode.c:382 #12 0x0000555555763982 in flush_encoders () at fftools/ffmpeg.c:1977 #13 transcode () at fftools/ffmpeg.c:4708 #14 0x000055555573dfae in main (argc=45, argv=0x7fffffffe168) at fftools/ffmpeg.c:4904 (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff2556aeb to 0x7ffff2556b2b: 0x00007ffff2556aeb <__memmove_chk_sse2_unaligned+11>: (bad) 0x00007ffff2556aec <__memmove_chk_sse2_unaligned+12>: add %cl,(%rdi) 0x00007ffff2556aee: (bad) 0x00007ffff2556aef: add %dh,%bl 0x00007ffff2556af1 <memcpy+1>: nop %edx 0x00007ffff2556af4 <memcpy+4>: mov %rdi,%rax 0x00007ffff2556af7 <memcpy+7>: cmp $0x10,%rdx 0x00007ffff2556afb <memcpy+11>: jb 0x7ffff2556c1b <__memmove_sse2_unaligned_erms+75> 0x00007ffff2556b01 <memcpy+17>: cmp $0x20,%rdx 0x00007ffff2556b05 <memcpy+21>: ja 0x7ffff2556c6a <__memmove_sse2_unaligned_erms+154> => 0x00007ffff2556b0b <memcpy+27>: movups (%rsi),%xmm0 0x00007ffff2556b0e <memcpy+30>: movups -0x10(%rsi,%rdx,1),%xmm1 0x00007ffff2556b13 <memcpy+35>: movups %xmm0,(%rdi) 0x00007ffff2556b16 <memcpy+38>: movups %xmm1,-0x10(%rdi,%rdx,1) 0x00007ffff2556b1b <memcpy+43>: retq 0x00007ffff2556b1c: nopl 0x0(%rax) 0x00007ffff2556b20 <__mempcpy_chk_erms+0>: endbr64 0x00007ffff2556b24 <__mempcpy_chk_erms+4>: cmp %rdx,%rcx 0x00007ffff2556b27 <__mempcpy_chk_erms+7>: jb 0x7ffff25c9370 <__GI___chk_fail> End of assembler dump. (gdb) info all-registers rax 0x5555598e2fa0 93825063071648 rbx 0x555558f60a40 93825053100608 rcx 0x1 1 rdx 0x10 16 rsi 0x0 0 rdi 0x5555598e2fa0 93825063071648 rbp 0x0 0x0 rsp 0x7fffffffb268 0x7fffffffb268 r8 0x0 0 r9 0x7fffffffb198 140737488335256 r10 0x7fffffffb190 140737488335248 r11 0x6247546d 1648841837 r12 0x555558f9bdf0 93825053343216 r13 0x5555598e5f60 93825063083872 r14 0x1 1 r15 0x5555592e4100 93825056784640 rip 0x7ffff2556b0b 0x7ffff2556b0b <memcpy+27> eflags 0x10287 [ CF PF SF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st1 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st2 <invalid float value> (raw 0xffff0000000002000200) st3 <invalid float value> (raw 0xffff0200020002000200) st4 <invalid float value> (raw 0xffff1010101010101010) st5 <invalid float value> (raw 0xffff1010101010101010) st6 0 (raw 0x00000000000000000000) st7 <invalid float value> (raw 0xffff0000000000000000) fctrl 0x37f 895 fstat 0x0 0 --Type <RET> for more, q to quit, c to continue without paging-- ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 mxcsr 0x1fa8 [ OE PE IM DM ZM OM UM PM ] bndcfgu {raw = 0x0, config = {base = 0x0, reserved = 0x0, preserved = 0x0, enabled = 0x0}} {raw = 0x0, config = {base = 0, reserved = 0, preserved = 0, enabled = 0}} bndstatus {raw = 0x0, status = {bde = 0x0, error = 0x0}} {raw = 0x0, status = {bde = 0, error = 0}} ymm0 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm1 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf5, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef5, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef5, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef5, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef5, 0x0}} ymm2 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf3, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef3, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef3, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef3, 0x0, 0x0}, v2_int128 = {0x7ef300005555588c6da0, 0x0}} ymm3 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf5, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef5, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef5, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef5, 0x0, 0x0}, v2_int128 = {0x7ef500005555588c6da0, 0x0}} ymm4 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm5 {v8_float = {0x80000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x30, 0x9d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xd4, 0x27, 0x0 <repeats 22 times>}, v16_int16 = {0x9d30, 0x588c, 0x5555, 0x0, 0x27d4, 0x0 <repeats 11 times>}, v8_int32 = {0x588c9d30, 0x5555, 0x27d4, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c9d30, 0x27d4, 0x0, 0x0}, v2_int128 = {0x27d400005555588c9d30, 0x0}} ymm6 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8--Type <RET> for more, q to quit, c to continue without paging-- = {0xed, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 23 times>}, v16_int16 = {0x7eed, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 11 times>}, v8_int32 = {0x7eed, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7eed, 0x1, 0x0, 0x0}, v2_int128 = {0x10000000000007eed, 0x0}} ymm7 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf1, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef1, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef1, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef1, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef1, 0x0}} ymm8 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x37, 0x7d, 0x7b, 0x5c, 0x70, 0x6f, 0x73, 0x28, 0x25, 0x64, 0x2c, 0x25, 0x64, 0x29, 0x7d, 0x0 <repeats 17 times>}, v16_int16 = {0x7d37, 0x5c7b, 0x6f70, 0x2873, 0x6425, 0x252c, 0x2964, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x5c7b7d37, 0x28736f70, 0x252c6425, 0x7d2964, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x28736f705c7b7d37, 0x7d2964252c6425, 0x0, 0x0}, v2_int128 = {0x7d2964252c642528736f705c7b7d37, 0x0}} ymm9 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm10 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm11 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf, 0x6, 0xac, 0x37, 0xa0, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x60f, 0x37ac, 0xfda0, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0x37ac060f, 0x3f85fda0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f85fda037ac060f, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fda037ac060f, 0x0}} ymm12 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa4, 0x61, 0xa0, 0xb, 0x6a, 0xf2, 0xe1, 0x3e, 0x0 <repeats 24 times>}, v16_int16 = {0x61a4, 0xba0, 0xf26a, 0x3ee1, 0x0 <repeats 12 times>}, v8_int32 = {0xba061a4, 0x3ee1f26a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ee1f26a0ba061a4, 0x0, 0x0, 0x0}, v2_int128 = {0x3ee1f26a0ba061a4, 0x0}} ymm13 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x8c, 0x9e, 0xee, 0xa6, 0xef, 0xf6, 0x67, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x9e8c, 0xa6ee, 0xf6ef, 0x3f67, 0x0 <repeats 12 times>}, v8_int32 = {0xa6ee9e8c, 0x3f67f6ef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f67f6efa6ee9e8c, 0x0, 0x0, 0x0}, v2_int128 = {0x3f67f6efa6ee9e8c, 0x0}} ymm14 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa3, 0xa7, 0xbb, 0xe9, 0xbb, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0xa7a3, 0xe9bb, 0xfdbb, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0xe9bba7a3, 0x3f85fdbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64--Type <RET> for more, q to quit, c to continue without paging-- = {0x3f85fdbbe9bba7a3, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fdbbe9bba7a3, 0x0}} ymm15 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x52, 0x55, 0x15, 0x0, 0xc0, 0xff, 0xef, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x5552, 0x15, 0xffc0, 0x3fef, 0x0 <repeats 12 times>}, v8_int32 = {0x155552, 0x3fefffc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3fefffc000155552, 0x0, 0x0, 0x0}, v2_int128 = {0x3fefffc000155552, 0x0}} bnd0 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd2 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd3 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 VALGRIND OUTPUT ==157472== Invalid read of size 8 4608kB time=00:00:59.96 bitrate= 629.5kbits/s speed=0.235x ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== Process terminating with default action of signal 11 (SIGSEGV) ==157472== Access not within mapped region at address 0x0 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== If you believe this happened as a result of a stack ==157472== overflow in your program's main thread (unlikely but ==157472== possible), you can try to increase the size of the ==157472== main thread stack using the --main-stacksize= flag. ==157472== The main thread stack size used in this run was 8388608. ==157472== ==157472== HEAP SUMMARY: ==157472== in use at exit: 115,961,685 bytes in 18,364 blocks ==157472== total heap usage: 338,204 allocs, 319,840 frees, 254,748,932 bytes allocated ==157472== ==157472== LEAK SUMMARY: ==157472== definitely lost: 72 bytes in 1 blocks ==157472== indirectly lost: 0 bytes in 0 blocks ==157472== possibly lost: 134,240 bytes in 1,446 blocks ==157472== still reachable: 115,827,373 bytes in 16,917 blocks ==157472== of which reachable via heuristic: ==157472== newarray : 1,536 bytes in 16 blocks ==157472== suppressed: 0 bytes in 0 blocks ==157472== Rerun with --leak-check=full to see details of leaked memory ==157472== ==157472== Use --track-origins=yes to see where uninitialised values come from ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) ==157472== ==157472== 1 errors in context 1 of 2: ==157472== Invalid read of size 8 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== 1 errors in context 2 of 2: ==157472== Conditional jump or move depends on uninitialised value(s) ==157472== at 0x25963AB4: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x25960957: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x259B6421: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x2571B373: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257296CA: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2D366D: nvenc_open_session (nvenc.c:359) ==157472== by 0x2D7014: nvenc_check_device (nvenc.c:614) ==157472== by 0x2D7014: nvenc_setup_device (nvenc.c:737) ==157472== by 0x2D7014: ff_nvenc_encode_init (nvenc.c:1760) ==157472== by 0x77ED43: avcodec_open2 (avcodec.c:347) ==157472== by 0x310FCC: init_output_stream.constprop.0 (ffmpeg.c:3493) ==157472== by 0x313052: init_output_stream_wrapper (ffmpeg.c:987) ==157472== by 0x313052: do_video_out (ffmpeg.c:1158) ==157472== by 0x3144BD: reap_filters (ffmpeg.c:1540) ==157472== by 0x318182: transcode_step (ffmpeg.c:4644) ==157472== by 0x318182: transcode (ffmpeg.c:4688) ==157472== ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Segmentation fault -- -- Ticket URL: <https://trac.ffmpeg.org/ticket/9709#comment:2> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9709: nvenc-segfault-at-eof -------------------------------------+------------------------------------- Reporter: ajaraptor | Owner: (none) Type: defect | Status: closed Priority: normal | Component: | undetermined Version: git-master | Resolution: fixed Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by ajaraptor): * status: new => closed * resolution: => fixed Old description:
Summary of the bug:
All versions of compiled ffmpeg 5.0 on Ubuntu 20.04 now produce a segfault on completion of any file using hevc_nvenc encode. This does not happen in any ffmpeg version before version 5.0.
Used release 5.0, then updated to release N-106467-ge301a24fa1. Same issue. Have to revert to a compiled version of 4.4.1 to avoid this error.
Commands plus gdb and valgrind output are below. The problem seems to be between ffmpeg/hevc_nvenc and the nvidia drivers. Sample ffmpeg log output is attached.
OS
Linux sol 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
NVIDIA DRIVER INFO
Driver Version: 470.103.01 CUDA Version: 11.4
Release info for this note (compiled 1 April 22):
ffmpeg version N-106467-ge301a24fa1 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra- ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/root/bin --enable-debug=2 --enable-gpl --enable-version3 --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable- libssh --enable-libzmq --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libzvbi --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libzimg --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-opencl --enable-libcdio --enable- libdav1d --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libfdk-aac --enable-libshine --enable- libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable- libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable- libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint --enable-nonfree libavutil 57. 24.101 / 57. 24.101 libavcodec 59. 25.100 / 59. 25.100 libavformat 59. 20.101 / 59. 20.101 libavdevice 59. 6.100 / 59. 6.100 libavfilter 8. 29.100 / 8. 29.100 libswscale 6. 6.100 / 6. 6.100 libswresample 4. 6.100 / 4. 6.100 libpostproc 56. 5.100 / 56. 5.100
gdb --args ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv
valgrind -s ~/bin/ffmpeg_g -report -i /tv/test2.mkv -map 0:v:0 -map 0:a -map 0:s? -c:v hevc_nvenc -profile:v main10 -pix_fmt p010le -level:v 4.1 -preset p6 -tune hq -rc-lookahead 20 -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc vbr -multipass 1 -qmin:v 19 -qmax:v 23 -b:v 0 -c:a copy -c:s copy /tv/h265/test2.mkv
SYSLOG OUTPUT SAMPLES
ffmpeg[9305]: segfault at 0 ip 00007f1ab984cb0b sp 00007ffd3dfa0a38 error 4 in libc-2.31.so[7f1ab97b3000+178000] ffmpeg[9814]: segfault at 0 ip 00007f48b26aab0b sp 00007ffe2ae67d08 error 4 in libc-2.31.so[7f48b2611000+178000] ffmpeg[12504]: segfault at 0 ip 00007f4ee0a39b0b sp 00007fffdaa4e3e8 error 4 in libc-2.31.so[7f4ee09a0000+178000] ffmpeg[51522]: segfault at 0 ip 00007f40e9ba4b0b sp 00007ffcf332ac78 error 4 in libc-2.31.so[7f40e9b0b000+178000]
GDB OUTPUT
Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:142 142 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) bt #0 memcpy () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned- erms.S:142 #1 0x00007fffe411e4d2 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #2 0x00007fffe411e7ec in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #3 0x00007fffe4117364 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #4 0x00007fffe4117549 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #5 0x00007fffe41179c5 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #6 0x00007fffe4115589 in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #7 0x00007fffe412406d in () at /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.1 #8 0x0000555556427b78 in nvenc_send_frame (avctx=avctx@entry=0x555557332a80, frame=frame@entry=0x55555836c7c0) at libavcodec/nvenc.c:2431 #9 0x0000555556429048 in ff_nvenc_receive_packet (avctx=0x555557332a80, pkt=0x555558366500) at libavcodec/nvenc.c:2476 #10 0x0000555555c9c7ca in encode_receive_packet_internal (avctx=avctx@entry=0x555557332a80, avpkt=0x555558366500) at libavcodec/codec_internal.h:207 #11 0x0000555555c9cdd1 in avcodec_send_frame (avctx=0x555557332a80, frame=0x0) at libavcodec/encode.c:382 #12 0x0000555555763982 in flush_encoders () at fftools/ffmpeg.c:1977 #13 transcode () at fftools/ffmpeg.c:4708 #14 0x000055555573dfae in main (argc=45, argv=0x7fffffffe168) at fftools/ffmpeg.c:4904
(gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff2556aeb to 0x7ffff2556b2b: 0x00007ffff2556aeb <__memmove_chk_sse2_unaligned+11>: (bad) 0x00007ffff2556aec <__memmove_chk_sse2_unaligned+12>: add %cl,(%rdi) 0x00007ffff2556aee: (bad) 0x00007ffff2556aef: add %dh,%bl 0x00007ffff2556af1 <memcpy+1>: nop %edx 0x00007ffff2556af4 <memcpy+4>: mov %rdi,%rax 0x00007ffff2556af7 <memcpy+7>: cmp $0x10,%rdx 0x00007ffff2556afb <memcpy+11>: jb 0x7ffff2556c1b <__memmove_sse2_unaligned_erms+75> 0x00007ffff2556b01 <memcpy+17>: cmp $0x20,%rdx 0x00007ffff2556b05 <memcpy+21>: ja 0x7ffff2556c6a <__memmove_sse2_unaligned_erms+154> => 0x00007ffff2556b0b <memcpy+27>: movups (%rsi),%xmm0 0x00007ffff2556b0e <memcpy+30>: movups -0x10(%rsi,%rdx,1),%xmm1 0x00007ffff2556b13 <memcpy+35>: movups %xmm0,(%rdi) 0x00007ffff2556b16 <memcpy+38>: movups %xmm1,-0x10(%rdi,%rdx,1) 0x00007ffff2556b1b <memcpy+43>: retq 0x00007ffff2556b1c: nopl 0x0(%rax) 0x00007ffff2556b20 <__mempcpy_chk_erms+0>: endbr64 0x00007ffff2556b24 <__mempcpy_chk_erms+4>: cmp %rdx,%rcx 0x00007ffff2556b27 <__mempcpy_chk_erms+7>: jb 0x7ffff25c9370 <__GI___chk_fail> End of assembler dump.
(gdb) info all-registers rax 0x5555598e2fa0 93825063071648 rbx 0x555558f60a40 93825053100608 rcx 0x1 1 rdx 0x10 16 rsi 0x0 0 rdi 0x5555598e2fa0 93825063071648 rbp 0x0 0x0 rsp 0x7fffffffb268 0x7fffffffb268 r8 0x0 0 r9 0x7fffffffb198 140737488335256 r10 0x7fffffffb190 140737488335248 r11 0x6247546d 1648841837 r12 0x555558f9bdf0 93825053343216 r13 0x5555598e5f60 93825063083872 r14 0x1 1 r15 0x5555592e4100 93825056784640 rip 0x7ffff2556b0b 0x7ffff2556b0b <memcpy+27> eflags 0x10287 [ CF PF SF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st1 -nan(0x8080808080808080) (raw 0xffff8080808080808080) st2 <invalid float value> (raw 0xffff0000000002000200) st3 <invalid float value> (raw 0xffff0200020002000200) st4 <invalid float value> (raw 0xffff1010101010101010) st5 <invalid float value> (raw 0xffff1010101010101010) st6 0 (raw 0x00000000000000000000) st7 <invalid float value> (raw 0xffff0000000000000000) fctrl 0x37f 895 fstat 0x0 0 --Type <RET> for more, q to quit, c to continue without paging-- ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 mxcsr 0x1fa8 [ OE PE IM DM ZM OM UM PM ] bndcfgu {raw = 0x0, config = {base = 0x0, reserved = 0x0, preserved = 0x0, enabled = 0x0}} {raw = 0x0, config = {base = 0, reserved = 0, preserved = 0, enabled = 0}} bndstatus {raw = 0x0, status = {bde = 0x0, error = 0x0}} {raw = 0x0, status = {bde = 0, error = 0}} ymm0 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm1 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf5, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef5, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef5, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef5, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef5, 0x0}} ymm2 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf3, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef3, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef3, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef3, 0x0, 0x0}, v2_int128 = {0x7ef300005555588c6da0, 0x0}} ymm3 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xf5, 0x7e, 0x0 <repeats 22 times>}, v16_int16 = {0x6da0, 0x588c, 0x5555, 0x0, 0x7ef5, 0x0 <repeats 11 times>}, v8_int32 = {0x588c6da0, 0x5555, 0x7ef5, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c6da0, 0x7ef5, 0x0, 0x0}, v2_int128 = {0x7ef500005555588c6da0, 0x0}} ymm4 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm5 {v8_float = {0x80000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x30, 0x9d, 0x8c, 0x58, 0x55, 0x55, 0x0, 0x0, 0xd4, 0x27, 0x0 <repeats 22 times>}, v16_int16 = {0x9d30, 0x588c, 0x5555, 0x0, 0x27d4, 0x0 <repeats 11 times>}, v8_int32 = {0x588c9d30, 0x5555, 0x27d4, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x5555588c9d30, 0x27d4, 0x0, 0x0}, v2_int128 = {0x27d400005555588c9d30, 0x0}} ymm6 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8--Type <RET> for more, q to quit, c to continue without paging-- = {0xed, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 23 times>}, v16_int16 = {0x7eed, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 11 times>}, v8_int32 = {0x7eed, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7eed, 0x1, 0x0, 0x0}, v2_int128 = {0x10000000000007eed, 0x0}} ymm7 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf1, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x6d, 0x8c, 0x58, 0x55, 0x55, 0x0 <repeats 18 times>}, v16_int16 = {0x7ef1, 0x0, 0x0, 0x0, 0x6da0, 0x588c, 0x5555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x7ef1, 0x0, 0x588c6da0, 0x5555, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x7ef1, 0x5555588c6da0, 0x0, 0x0}, v2_int128 = {0x5555588c6da00000000000007ef1, 0x0}} ymm8 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x37, 0x7d, 0x7b, 0x5c, 0x70, 0x6f, 0x73, 0x28, 0x25, 0x64, 0x2c, 0x25, 0x64, 0x29, 0x7d, 0x0 <repeats 17 times>}, v16_int16 = {0x7d37, 0x5c7b, 0x6f70, 0x2873, 0x6425, 0x252c, 0x2964, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 = {0x5c7b7d37, 0x28736f70, 0x252c6425, 0x7d2964, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x28736f705c7b7d37, 0x7d2964252c6425, 0x0, 0x0}, v2_int128 = {0x7d2964252c642528736f705c7b7d37, 0x0}} ymm9 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm10 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x0 <repeats 32 times>}, v16_int16 = {0x0 <repeats 16 times>}, v8_int32 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x0, 0x0, 0x0, 0x0}, v2_int128 = {0x0, 0x0}} ymm11 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xf, 0x6, 0xac, 0x37, 0xa0, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x60f, 0x37ac, 0xfda0, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0x37ac060f, 0x3f85fda0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f85fda037ac060f, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fda037ac060f, 0x0}} ymm12 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa4, 0x61, 0xa0, 0xb, 0x6a, 0xf2, 0xe1, 0x3e, 0x0 <repeats 24 times>}, v16_int16 = {0x61a4, 0xba0, 0xf26a, 0x3ee1, 0x0 <repeats 12 times>}, v8_int32 = {0xba061a4, 0x3ee1f26a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3ee1f26a0ba061a4, 0x0, 0x0, 0x0}, v2_int128 = {0x3ee1f26a0ba061a4, 0x0}} ymm13 {v8_float = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x8c, 0x9e, 0xee, 0xa6, 0xef, 0xf6, 0x67, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x9e8c, 0xa6ee, 0xf6ef, 0x3f67, 0x0 <repeats 12 times>}, v8_int32 = {0xa6ee9e8c, 0x3f67f6ef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3f67f6efa6ee9e8c, 0x0, 0x0, 0x0}, v2_int128 = {0x3f67f6efa6ee9e8c, 0x0}} ymm14 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0xa3, 0xa7, 0xbb, 0xe9, 0xbb, 0xfd, 0x85, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0xa7a3, 0xe9bb, 0xfdbb, 0x3f85, 0x0 <repeats 12 times>}, v8_int32 = {0xe9bba7a3, 0x3f85fdbb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64--Type <RET> for more, q to quit, c to continue without paging-- = {0x3f85fdbbe9bba7a3, 0x0, 0x0, 0x0}, v2_int128 = {0x3f85fdbbe9bba7a3, 0x0}} ymm15 {v8_float = {0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_double = {0x0, 0x0, 0x0, 0x0}, v32_int8 = {0x52, 0x55, 0x15, 0x0, 0xc0, 0xff, 0xef, 0x3f, 0x0 <repeats 24 times>}, v16_int16 = {0x5552, 0x15, 0xffc0, 0x3fef, 0x0 <repeats 12 times>}, v8_int32 = {0x155552, 0x3fefffc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int64 = {0x3fefffc000155552, 0x0, 0x0, 0x0}, v2_int128 = {0x3fefffc000155552, 0x0}} bnd0 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd2 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 bnd3 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1 {lbound = 0x0, ubound = 0xffffffffffffffff} : size -1
VALGRIND OUTPUT
==157472== Invalid read of size 8 4608kB time=00:00:59.96 bitrate= 629.5kbits/s speed=0.235x ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== Process terminating with default action of signal 11 (SIGSEGV) ==157472== Access not within mapped region at address 0x0 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== If you believe this happened as a result of a stack ==157472== overflow in your program's main thread (unlikely but ==157472== possible), you can try to increase the size of the ==157472== main thread stack using the --main-stacksize= flag. ==157472== The main thread stack size used in this run was 8388608. ==157472== ==157472== HEAP SUMMARY: ==157472== in use at exit: 115,961,685 bytes in 18,364 blocks ==157472== total heap usage: 338,204 allocs, 319,840 frees, 254,748,932 bytes allocated ==157472== ==157472== LEAK SUMMARY: ==157472== definitely lost: 72 bytes in 1 blocks ==157472== indirectly lost: 0 bytes in 0 blocks ==157472== possibly lost: 134,240 bytes in 1,446 blocks ==157472== still reachable: 115,827,373 bytes in 16,917 blocks ==157472== of which reachable via heuristic: ==157472== newarray : 1,536 bytes in 16 blocks ==157472== suppressed: 0 bytes in 0 blocks ==157472== Rerun with --leak-check=full to see details of leaked memory ==157472== ==157472== Use --track-origins=yes to see where uninitialised values come from ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) ==157472== ==157472== 1 errors in context 1 of 2: ==157472== Invalid read of size 8 ==157472== at 0x48401E6: memcpy@GLIBC_2.2.5 (in /usr/lib/x86_64-linux- gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==157472== by 0x257234D1: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257237EB: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C363: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C548: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571C9C4: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2571A588: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2572906C: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0xFDBB77: nvenc_send_frame (nvenc.c:2431) ==157472== by 0xFDD047: ff_nvenc_receive_packet (nvenc.c:2476) ==157472== by 0x8507C9: encode_receive_packet_internal (encode.c:296) ==157472== by 0x850DD0: avcodec_send_frame (encode.c:382) ==157472== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==157472== ==157472== ==157472== 1 errors in context 2 of 2: ==157472== Conditional jump or move depends on uninitialised value(s) ==157472== at 0x25963AB4: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x25960957: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x259B6421: ??? (in /usr/lib/x86_64-linux- gnu/libnvcuvid.so.470.103.01) ==157472== by 0x2571B373: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x257296CA: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia- encode.so.470.103.01) ==157472== by 0x2D366D: nvenc_open_session (nvenc.c:359) ==157472== by 0x2D7014: nvenc_check_device (nvenc.c:614) ==157472== by 0x2D7014: nvenc_setup_device (nvenc.c:737) ==157472== by 0x2D7014: ff_nvenc_encode_init (nvenc.c:1760) ==157472== by 0x77ED43: avcodec_open2 (avcodec.c:347) ==157472== by 0x310FCC: init_output_stream.constprop.0 (ffmpeg.c:3493) ==157472== by 0x313052: init_output_stream_wrapper (ffmpeg.c:987) ==157472== by 0x313052: do_video_out (ffmpeg.c:1158) ==157472== by 0x3144BD: reap_filters (ffmpeg.c:1540) ==157472== by 0x318182: transcode_step (ffmpeg.c:4644) ==157472== by 0x318182: transcode (ffmpeg.c:4688) ==157472== ==157472== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Segmentation fault
New description: -- Comment: The segfault appears to have been caused by an incompatibility between the compiled version of ffmpeg 5 (including git-master and version 5.0.1) and the standard (currently recommended) ubuntu nvidia drivers, version 470. Updating the nvidia drivers to version 510 appears to have solved the problem. Anyone using nvidia driver version 470 should note this and update. We will close this bug report now. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9709#comment:3> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
participants (1)
-
FFmpeg