Closed ajlewis02 closed 3 months ago
Can confirm, that your script triggers unexpected behavior!
Testing on x86_64 -> segfault during full tear down of buffers. Will look into it. Could be a destruction order issue...
Some interim thoughts: One of the big changes in 0.7.0 was to support Nvidia NVMM. This resulted in bigger changes of the buffer management.....
In your sample code you remove the buffer creating pylonsrc, without waiting that the last buffer to leave the sink. The segfault, I see on x86_64 is triggered, because the buffer is still in flight in the fakesink when pylon gets destructed. You might have to wait for the pipeline to finish before removing pylonsrc....
This was a long one but finally we found the root cause and fixed it.
Please check the latest release that also adds Debian Ubuntu packages
https://github.com/basler/gst-plugin-pylon/releases/tag/v1.0.0
Describe the bug On version 7.0 (but not 6.1.0), the pylonsrc plugin is unstable when attempting to dynamically destroy and create plugins within the same pipeline. Specifically, the plugin seems to crash whenever attempting to connect to a camera which had been previously connected to, even if the old plugin has been totally unallocated. To Reproduce This python script reproduces the issue: (Note that this script reproduces the issue in pylonsrc 7.0, but works as intended with pylonsrc 6.1. I haven't tested on other versions of pylonsrc.)
Expected behavior The expected behavior was that the new plugin would successfully connect to the camera, given that the old plugin had been unallocated and has disconnected from the camera.
Pylonsrc 6.1.0 works as expected in this regard.
Environment
gst-inspect-1.0 pylonsrc | grep -E "Descr.*pylon.*|\s+Version\s+[0-9]+"
: 0.7.0-local