Skip to content

vaDisplayIsValid random Segmentation fault #811

@alexge233

Description

@alexge233

Overview Description:

I am getting random SEGFAULT from vaDisplayIsValid.

Version, Platform, and Hardware Bug Found:

  1. git log -1 --oneline: cec93c7 Merge pull request Disable default copy and assignment constructors #765 from xlz/disable-default-constructors
  2. Ubuntu 16.04

Steps to Reproduce:

  1. I am using the default constructor as shown in the examples, encapsulated in my own class.
  2. At random intervals, I get a segmentation fault
    if (handle.enumerateDevices() == 0) {
       throw std::runtime_error("no kinect v2 connected!");
    }
    std::string serial = handle.getDefaultDeviceSerialNumber();
    pipeline = new libfreenect2::CpuPacketPipeline();
    assert(pipeline);
    dev = handle.openDevice(serial, pipeline);
    if (dev == 0) {
        throw std::runtime_error("failed to open kinect v2");
    }
    int types = libfreenect2::Frame::Color | libfreenect2::Frame::Ir | libfreenect2::Frame::Depth;
    listen = std::make_unique<libfreenect2::SyncMultiFrameListener>(types);
    dev->setIrAndDepthFrameListener(&*listen);
    dev->setColorFrameListener(&*listen);
    if (!dev->start()) {
        throw std::runtime_error("failed to start kinect streams");
    }
    registration = new libfreenect2::Registration(dev->getIrCameraParams(), 
                                                  dev->getColorCameraParams());

I was getting random SEGFAULT, so I kept running it under gdb, and at some stage I found out:

[New Thread 0x7fffd178a700 (LWP 23148)]
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] 8 usb devices connected
[Info] [Freenect2Impl] found valid Kinect v2 @2:5 with serial 001680660547
[Info] [Freenect2Impl] found 1 devices

Thread 1 "mario_node" received signal SIGSEGV, Segmentation fault.
0x00007fffeeda3347 in vaDisplayIsValid () from /usr/lib/x86_64-linux-gnu/libva.so.1
(gdb) bt
#0  0x00007fffeeda3347 in vaDisplayIsValid () from /usr/lib/x86_64-linux-gnu/libva.so.1
#1  0x00007ffff576a5c7 in libfreenect2::VaapiRgbPacketProcessorImpl::initializeVaapi() () from /home/mario/freenect2/lib/libfreenect2.so.0.2
#2  0x00007ffff5769408 in libfreenect2::VaapiRgbPacketProcessor::VaapiRgbPacketProcessor() () from /home/mario/freenect2/lib/libfreenect2.so.0.2
#3  0x00007ffff5756ee5 in libfreenect2::CpuPacketPipeline::CpuPacketPipeline() () from /home/mario/freenect2/lib/libfreenect2.so.0.2
#4  0x0000000000413e60 in freenect2::freenect2() ()

My system has the apt-get version of libva: 1.7.0-1 installed.
I understand this is quite likely a bug in libva, so I've opened an issue there as well.
However I'd like to know if this has been experienced before, and if removing libva will significantly slow down libfreenect2.

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