Skip to content

用在Python程序中,Python运行结束时析构独显设备的VulkanDevice时释放dummy_image失败引发SIGSEGV #2666

@ArchieMeng

Description

@ArchieMeng

问题描述:

waifu2x-ncnn-vulkan-python(封装了waifu2x-ncnn-vulkan所以使用了ncnn)的样例程序在运行结束时,Waifu2x对象析构成功后,析构ncnn::g_default_vkdev的dummy_image的时候会发生Segment fault。在核显设备上(i5 1035G7 Iris Plus)不会有问题,但是在另一台独显设备上(1050Ti)会发生。(两台设备均为单GPU,也就是单核显和单独显)。另外,运行原版waifu2x-ncnn-vulkan程序的时候都没有问题。系统均为Arch linux

复现步骤:

1.编译waifu2x-ncnn-vulkan-python
2.到编译目录中运行waifu2x_ncnn_vulkan.py (如果程序中图片路径不对,就修改)

Backtrace Log的获取方式:

cd waifu2x-ncnn-vulkan-python/src/build
gdb python
(gdb) b Waifu2x::~Waifu2x
(gdb) run waifu2x_ncnn_vulkan.py

运行直至crash

GDB crash backtrace:

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007ffff282ab60 in ?? ()
(gdb) backtrace
#0  0x00007ffff282ab60 in ?? ()
#1  0x00007ffff69572ef in ncnn::VkBlobAllocator::fastFree (this=0x555555e2d400, ptr=0x555555e2ebe0)
    at /home/kodi/OpensourceProjects/waifu2x-ncnn-vulkan-python/src/ncnn/src/allocator.cpp:1045
#2  0x00007ffff6830b1d in ncnn::VkImageMat::release (this=0x555555c94d00) at /home/kodi/OpensourceProjects/waifu2x-ncnn-vulkan-python/src/ncnn/src/mat.h:2217
#3  0x00007ffff6843830 in ncnn::VulkanDevicePrivate::destroy_dummy_buffer_image (this=0x555555c94bb0)
    at /home/kodi/OpensourceProjects/waifu2x-ncnn-vulkan-python/src/ncnn/src/gpu.cpp:1633
#4  0x00007ffff67bb4ca in ncnn::VulkanDevice::~VulkanDevice (this=<optimized out>, this=<optimized out>)
    at /home/kodi/OpensourceProjects/waifu2x-ncnn-vulkan-python/src/ncnn/src/gpu.cpp:2007
#5  0x00007ffff684341d in ncnn::destroy_gpu_instance () at /home/kodi/OpensourceProjects/waifu2x-ncnn-vulkan-python/src/ncnn/src/gpu.cpp:1469
#6  0x00007ffff67b9b93 in ncnn::__ncnn_vulkan_instance_holder::~__ncnn_vulkan_instance_holder (this=<optimized out>, this=<optimized out>)
    at /home/kodi/OpensourceProjects/waifu2x-ncnn-vulkan-python/src/ncnn/src/gpu.cpp:50
#7  0x00007ffff7a45db7 in __run_exit_handlers () from /usr/lib/libc.so.6
#8  0x00007ffff7a45f5e in exit () from /usr/lib/libc.so.6
#9  0x00007ffff7a2e159 in __libc_start_main () from /usr/lib/libc.so.6
#10 0x000055555555504e in _start ()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions