Skip to content

SIGABRT by cv::Exception on ocl.cpp:4908 -> CV_Assert(u->origdata == data); #15574

@TieSKey

Description

@TieSKey

I'm having a lot of intermittent buy frequent aborts raised by this assertion:

CV_Assert(u->origdata == data);

inside a loop doing face detection and tracking. It usually happens on the tracking part, FaceEngine.hpp:135

I'm not sure if it's a real bug or a miss use on my side but some sort of race condition is involved on opencv/ocl library/driver side since it is not exactly 100% reproducible (it's somewhere around 70~50%) and depends on run modes and input timming.

You can find attached the outputs of clinfo, getBuildInformation() and a sample project.
opencv-repro.tar.gz
clinfo.txt
getBuildInformation.txt

To reproduce the error, run the sample using the "StaticFrameProvider" (as provided). Plz try several times alternating between "run" and "debug" modes if using an IDE (I'm using CLion). Although it fails too if make and run from the command line.

You can also change main.cpp line 36 with the "OpenCvFrameProvider" that uses opencv::VideoCapture.
When using VideoCapture, the behavior becomes even more weird on an IDE, as launching the program in debug mode will most likely (but not always) result in an abort the first time a cv::Tracker is updated. Otoh if launch in "run" mode, it will only result in an abort if the very first frame contains a face but not if a face appears later in front of the camera.

I tried making copies and clones of the "colorFrame" variable (lenna image or frame from cv::VideoCapture over a webcam) before passing it to the Tracker but it doesn't help much.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions