PlotJuggler / plotjuggler-ros-plugins

Many PlotJuggler plugins for ROS and ROS2.
GNU Affero General Public License v3.0
106 stars 44 forks source link

segmentation fault when loading plugins #43

Closed scgroot closed 2 years ago

scgroot commented 2 years ago

Hi,

I try to use the latest version of PlotJuggler using the Ros plugins, but I struggle a bit.

When I use the version that comes trough apt-get I once again get questioned to update. Since I of course want the latest & greatest, I download the AppImage version from github! However, this does not have Ros2 (galactic in my case) support. When I try to use the default plugins (apt install ..) I get the following error message. Sometimes it works though, sometimes not..

What would be the recommended way of using the latest PlotJuggler with ros2 plugings? Are there maybe binaries available for the plugin that do work with the AppImage version?

Thanks in advance!

~/Desktop/PlotJuggler-3.4.1-x86_64.AppImage 
Loading compatible plugins from directory:  "/opt/ros/galactic/lib/plotjuggler_ros"
"libDataLoadROS2.so is a DataLoader plugin"
"libDataStreamROS2.so is a DataStreamer plugin"
Stack trace (most recent call last):
#7    Object "", at 0xffffffffffffffff, in 
#6    Object "/tmp/.mount_PlotJuzgnvu1/usr/bin/plotjuggler", at 0x55b5c4adb90d, in _start
#5    Source "../csu/libc-start.c", line 308, in __libc_start_main [0x7fe850e3c0b2]
#4    Source "/home/dfaconti/tmp_pj/PlotJuggler/plotjuggler_app/main.cpp", line 368, in main [0x55b5c4ada8a6]
#3    Source "/home/dfaconti/tmp_pj/PlotJuggler/plotjuggler_app/mainwindow.cpp", line 230, in MainWindow [0x55b5c4b1d34d]
#2    Source "/home/dfaconti/tmp_pj/PlotJuggler/plotjuggler_app/mainwindow.cpp", line 566, in loadAllPlugins [0x55b5c4b1464e]
#1    Source "/home/dfaconti/tmp_pj/PlotJuggler/plotjuggler_app/mainwindow.cpp", line 741, in initializePlugins [0x55b5c4b13965]
#0  | Source "/home/dfaconti/tmp_pj/PlotJuggler/plotjuggler_base/src/datastreamer_base.cpp", line 8, in operator=
    | Source "/usr/include/c++/9/bits/shared_ptr.h", line 103, in operator=
    |   101:   */
    |   102:   template<typename _Tp>
    | > 103:     class shared_ptr : public __shared_ptr<_Tp>
    |   104:     {
    |   105:       template<typename... _Args>
    | Source "/usr/include/c++/9/bits/shared_ptr_base.h", line 1080, in operator=
    |  1079:   template<typename _Tp, _Lock_policy _Lp>
    | >1080:     class __shared_ptr
    |  1081:     : public __shared_ptr_access<_Tp, _Lp>
    |  1082:     {
    | Source "/usr/include/c++/9/bits/shared_ptr_base.h", line 749, in _M_release
    |   747:          __tmp->_M_add_ref_copy();
    |   748:        if (_M_pi != 0)
    | > 749:          _M_pi->_M_release();
    |   750:        _M_pi = __tmp;
    |   751:      }
    | Source "/usr/include/c++/9/bits/shared_ptr_base.h", line 152, in __exchange_and_add_dispatch
    |   150:         // Be race-detector-friendly.  For more info see bits/c++config.
    |   151:         _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&_M_use_count);
    | > 152:    if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1)
    |   153:      {
    |   154:             _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&_M_use_count);
    | Source "/usr/include/c++/9/ext/atomicity.h", line 78, in __exchange_and_add_dispatch
    |    76:   static inline _Atomic_word
    |    77:   __attribute__ ((__unused__))
    | >  78:   __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
    |    79:   {
    |    80: #ifdef __GTHREADS
    | Source "/usr/include/c++/9/ext/atomicity.h", line 82, in __exchange_and_add
    |    80: #ifdef __GTHREADS
    |    81:     if (__gthread_active_p())
    | >  82:       return __exchange_and_add(__mem, __val);
    |    83:     else
    |    84:       return __exchange_and_add_single(__mem, __val);
      Source "/usr/include/c++/9/ext/atomicity.h", line 49, in setAvailableParsers [0x55b5c4c48bfe]
         46: #ifdef _GLIBCXX_ATOMIC_BUILTINS
         47:   static inline _Atomic_word 
         48:   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
      >  49:   { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
         50: 
         51:   static inline void
         52:   __atomic_add(volatile _Atomic_word* __mem, int __val)
Segmentation fault (Signal sent by the kernel [(nil)])
Segmentation fault (core dumped)
facontidavide commented 2 years ago

AppImage can not work ANY external plugins, including ROS ones.

You should install both plotjuggler and ROS plugins with APT