#9518 closed defect (fixed)
scale_vulkan and gblur_vulkan filters trigger segfault on invocation.
Reported by: | Dennis E. Mungai | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avfilter |
Version: | git-master | Keywords: | vulkan |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
I'm running FFmpeg's latest git tip from master, and encountered a segfault when running any command that invokes either scale_vulkan
or gblur_vulkan
. I'm yet to track down the exact commit that breaks these filters, so I'll update the ticket with that info when that's done.
Here is what gdb reports:
gdb --args /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g -init_hw_device cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4 -filter_complex "[0:v]hwupload=extra_hw_frames=16:derive_device=vulkan,scale_vulkan=w=1920:h=1080,hwupload=derive_device=cuda[s0]" -map "[s0]" -c:v:0 h264_nvenc -map "0:a" -c:a copy -f mpegts -y scale_vulkan_test.ts GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g... (gdb) run Starting program: /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g -init_hw_device cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4 -filter_complex \[0:v\]hwupload=extra_hw_frames=16:derive_device=vulkan,scale_vulkan=w=1920:h=1080,hwupload=derive_device=cuda\[s0\] -map \[s0\] -c:v:0 h264_nvenc -map 0:a -c:a copy -f mpegts -y scale_vulkan_test.ts [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". ffmpeg version N-104617-g405685dec7 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04) configuration: --pkg-config-flags=--static --enable-static --disable-shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --enable-cuda-nvcc --enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc --enable-libass --enable-debug --enable-gpl --cpu=native --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl --enable-librtmp --enable-libzvbi --enable-version3 --enable-opencl --enable-pic --enable-librav1e --enable-libglslang --enable-vulkan --enable-libsrt --enable-avisynth --enable-libsvtav1 --enable-libvpx --enable-libplacebo --enable-librav1e --nvccflags='-gencode arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl' --enable-nonfree libavutil 57. 9.100 / 57. 9.100 libavcodec 59. 13.100 / 59. 13.100 libavformat 59. 9.101 / 59. 9.101 libavdevice 59. 0.101 / 59. 0.101 libavfilter 8. 17.100 / 8. 17.100 libswscale 6. 1.100 / 6. 1.100 libswresample 4. 0.100 / 4. 0.100 libpostproc 56. 0.100 / 56. 0.100 [New Thread 0x7fffe5973000 (LWP 2443713)] [New Thread 0x7fffe5172000 (LWP 2443714)] [New Thread 0x7fffe1fff000 (LWP 2443715)] Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'feeds.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf59.5.100 Duration: 01:00:02.13, start: 0.000000, bitrate: 13533 kb/s Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 13144 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1[0x2](eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 384 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] Side data: audio service type: main Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. 0x000055555596da4c in ff_vk_free_buf (s=s@entry=0x55555884a080, buf=buf@entry=0x55555884a8f0) at ./libavutil/vulkan.c:356 356 vk->DeviceWaitIdle(s->hwctx->act_dev);
And for the gblur_vulkan filter which also triggers a segfault in a similar fashion:
gdb --args /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g -init_hw_device cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4 -filter_complex "[0:v]hwupload=extra_hw_frames=16:derive_device=vulkan,gblur_vulkan,hwupload=derive_device=cuda[s0]" -map "[s0]" -c:v:0 h264_nvenc -map "0:a" -c:a copy -f mpegts -y scale_vulkan_test.ts GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g... (gdb) run Starting program: /home/brainiarc7/ffmpeg_sources/ffmpeg/ffmpeg_g -init_hw_device cuda=cuda:0 -filter_hw_device cuda -i feeds.mp4 -filter_complex \[0:v\]hwupload=extra_hw_frames=16:derive_device=vulkan,gblur_vulkan,hwupload=derive_device=cuda\[s0\] -map \[s0\] -c:v:0 h264_nvenc -map 0:a -c:a copy -f mpegts -y scale_vulkan_test.ts [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". ffmpeg version N-104617-g405685dec7 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04) configuration: --pkg-config-flags=--static --enable-static --disable-shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --enable-cuda-nvcc --enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc --enable-libass --enable-debug --enable-gpl --cpu=native --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl --enable-librtmp --enable-libzvbi --enable-version3 --enable-opencl --enable-pic --enable-librav1e --enable-libglslang --enable-vulkan --enable-libsrt --enable-avisynth --enable-libsvtav1 --enable-libvpx --enable-libplacebo --enable-librav1e --nvccflags='-gencode arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl' --enable-nonfree libavutil 57. 9.100 / 57. 9.100 libavcodec 59. 13.100 / 59. 13.100 libavformat 59. 9.101 / 59. 9.101 libavdevice 59. 0.101 / 59. 0.101 libavfilter 8. 17.100 / 8. 17.100 libswscale 6. 1.100 / 6. 1.100 libswresample 4. 0.100 / 4. 0.100 libpostproc 56. 0.100 / 56. 0.100 [New Thread 0x7fffe5973000 (LWP 2448642)] [New Thread 0x7fffe5172000 (LWP 2448643)] [New Thread 0x7fffe1fff000 (LWP 2448644)] Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'feeds.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf59.5.100 Duration: 01:00:02.13, start: 0.000000, bitrate: 13533 kb/s Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 13144 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1[0x2](eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 384 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] Side data: audio service type: main Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault. 0x000055555596da4c in ff_vk_free_buf (s=s@entry=0x55555884a080, buf=buf@entry=0x55555884a8f0) at ./libavutil/vulkan.c:356 356 vk->DeviceWaitIdle(s->hwctx->act_dev);
The other Vulkan-based filters (as tested) are unaffected.
Warm regards,
Dennis.
Change History (3)
comment:1 by , 2 years ago
Status: | new → open |
---|
comment:2 by , 2 years ago
Version: | unspecified → git-master |
---|
comment:3 by , 2 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Note:
See TracTickets
for help on using tickets.
This issue is fixed by the commit 135e1c0adf155419a9546f02d620fb2aae95194b