[FFmpeg-trac] #9709(undetermined:closed): nvenc-segfault-at-eof

FFmpeg trac at avcodec.org
Fri Apr 8 19:43:37 EEST 2022


#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 at entry=0x555557332a80, frame=frame at 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 at 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 at 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 at 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 at 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


More information about the FFmpeg-trac mailing list