You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the package used pluginlib is compiled in Release mode, it throws out segmentation fault so seems the instance of corresponding plugin base class tries to read forbidden address, which locates the relavant stuffs of destructor of shared lib that is unloaded right before deleting unmanaged instance. But this behaviours don't occur when corresponding package package is built either without any CMAKE_BUILD_TYPE(shortly colcon build) or with Debug mode(shortly colcon build --mixin debug)
To trigger these behaviors, i have created example package which originated from ros2 plugin tutorials but with some modifications and conducted debugs.
Scenario 1: compiled with colcon --mixin release :
Hi,
When the package used
pluginlib
is compiled inRelease
mode, it throws out segmentation fault so seems the instance of corresponding plugin base class tries to read forbidden address, which locates the relavant stuffs of destructor of shared lib that is unloaded right before deleting unmanaged instance. But this behaviours don't occur when corresponding package package is built either without any CMAKE_BUILD_TYPE(shortlycolcon build
) or with Debug mode(shortlycolcon build --mixin debug
)Description
To trigger these behaviors, i have created example package which originated from ros2 plugin tutorials but with some modifications and conducted debugs.
Scenario 1: compiled with
colcon --mixin release
:https://gist.githubusercontent.com/DarkusAlphaHydranoid/71eef2bd0a092193653fc0dd895d409a/raw/80be7aee8969247e074ff9ddf09848f8c675a7e7/pluginlib_debug_build_with_Release.md
Scenario 2: compiled with
colcon --mixin debug
:https://gist.githubusercontent.com/DarkusAlphaHydranoid/71eef2bd0a092193653fc0dd895d409a/raw/80be7aee8969247e074ff9ddf09848f8c675a7e7/pluginlib_debug_build_with_Debug.md
In accordance of above logs, seems in debug mode, although library is unloaded with below line
class_loader/src/class_loader.cpp
Line 136 in 464fd14
, it is not unloaded. But in release mode, above method immidiately unloads shared library.
How to reproduce
Then go ahead as you wish.
Additional
I have found this error while trying this PR. But in this case, even if it's not compiled with release, it throws out very similar segfault again.
The text was updated successfully, but these errors were encountered: