-
Notifications
You must be signed in to change notification settings - Fork 404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault importing Pinocchio 3.3.0 Python bindings from Humble binaries #2542
Comments
Thanks @scastro-bdai, for raising this issue. Could you show the GDB results when running the Python import? |
EDIT: I can Google after all :) |
I think I got somewhere... installed Python debug symbols and ran a simple file that just runs
|
Thanks for the report. With #0 0x00005c23a5f77df8 in _Py_Dealloc ()
#1 0x00007add40e4f74f in _Py_DECREF () at /usr/include/python3.10/object.h:500
#2 _Py_XDECREF () at /usr/include/python3.10/object.h:567
#3 xdecref<_object> () at /usr/include/boost/python/refcount.hpp:38
#4 operator= () at /usr/include/boost/python/handle.hpp:85
#5 operator= () at /usr/include/boost/python/args_fwd.hpp:19
#6 __copy_m<boost::python::detail::keyword const*, boost::python::detail::keyword*> () at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h:385
#7 __copy_move_a2<false, boost::python::detail::keyword const*, boost::python::detail::keyword*> () at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h:494
#8 __copy_move_a1<false, boost::python::detail::keyword const*, boost::python::detail::keyword*> () at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h:522
#9 __copy_move_a<false, boost::python::detail::keyword const*, boost::python::detail::keyword*> () at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h:530
#10 copy<boost::python::detail::keyword const*, boost::python::detail::keyword*> () at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h:619
#11 operator, () at /usr/include/boost/python/args.hpp:89
#12 visit<boost::python::class_<pinocchio::SE3Tpl<double, 0>, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified> > () at ./include/pinocchio/bindings/python/spatial/se3.hpp:61
#13 0x00007add40e4dfe8 in visit<boost::python::def_visitor<pinocchio::python::SE3PythonVisitor<pinocchio::SE3Tpl<double, 0> > >, boost::python::class_<pinocchio::SE3Tpl<double, 0>, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified> > () at /usr/include/boost/python/def_visitor.hpp:31
#14 visit<boost::python::class_<pinocchio::SE3Tpl<double, 0>, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified> > () at /usr/include/boost/python/def_visitor.hpp:67
#15 def<pinocchio::python::SE3PythonVisitor<pinocchio::SE3Tpl<double, 0> > > () at /usr/include/boost/python/class.hpp:221
#16 expose () at ./include/pinocchio/bindings/python/spatial/se3.hpp:226
#17 0x00007add40e4de9c in exposeSE3 () at ./.obj-x86_64-linux-gnu/bindings/python/./bindings/python/spatial/expose-SE3.cpp:20
#18 0x00007add41169cbc in init_module_pinocchio_pywrap_default () at ./.obj-x86_64-linux-gnu/bindings/python/./bindings/python/module.cpp:95
#19 0x00007adde8a926e3 in boost::python::handle_exception_impl(boost::function0<void>) () from /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0
#20 0x00007adde8a93c69 in boost::python::detail::init_module(PyModuleDef&, void (*)()) () from /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0
#21 0x00005c23a60a558a in ?? () |
@nim65s So you confirm there is an issue? If it is the case, could you share the docker image. |
Yes, I'm currently working on adding the CI back, and I found another issue on eigenpy so I won't work on this segfault right now, but a reproducer is simply: FROM ros:humble
RUN apt update && apt install -qy ros-humble-pinocchio ros-humble-pinocchio-dbgsym gdb |
EigenPy might be the cause. No? |
eigenpy seems to work fine in this docker: root@b6e2fda1be49:/# python3
Python 3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import eigenpy
>>> eigenpy.__file__
'/opt/ros/humble/lib/python3.10/site-packages/eigenpy/__init__.py'
>>> eigenpy.__version__
'3.8.2'
>>> eigenpy.Quaternion(1, 2, 3, 4).norm()
5.477225575051661 |
I think I have found the issue. Could you please show me how to compile Pinocchio with ROS ? |
Bug description
After upgrading to the ROS Humble December 20, 2024 sync, which upgrades from 2.6.21 to 3.3.0. importing the Python bindings segfaults.
These binaries are specifically from the
ros-humble-pinocchio
apt install.Expected behavior
Importing should not segfault.
Reproduction steps
Steps to reproduce the behavior:
python3
import pinocchio
Before upgrade:
After upgrade
System
ros-humble-pinocchio
The text was updated successfully, but these errors were encountered: