Skip to content

[BUG]: hang on exit #1275

@christianrauch

Description

@christianrauch

Describe the bug
PlotJuggler hangs on exit and does not quit.

To Reproduce

  1. Run ros2 run plotjuggler plotjuggler.
  2. Close the window via the top right "x" button.
  3. I then have to press Ctrl+C to interrupt the process.

Full log:

$ ros2 run plotjuggler plotjuggler 
QSocketNotifier: Can only be used with threads started with QThread
Loading compatible plugins from directory:  "/opt/ros/jazzy/lib/plotjuggler_ros"
"/opt/ros/jazzy/lib/plotjuggler_ros/libDataLoadROS2.so is a DataLoader plugin"
"/opt/ros/jazzy/lib/plotjuggler_ros/libDataStreamROS2.so is a DataStreamer plugin"
[WARN] [1769036412.556261669] [rclcpp]: logging was initialized more than once
"/opt/ros/jazzy/lib/plotjuggler_ros/libTopicPublisherROS2.so is a StatePublisher plugin"
Loading compatible plugins from directory:  "/opt/ros/jazzy/lib/plotjuggler"
"/opt/ros/jazzy/lib/plotjuggler/libDataLoadCSV.so is a DataLoader plugin"
"/opt/ros/jazzy/lib/plotjuggler/libDataLoadMCAP.so is a DataLoader plugin"
"/opt/ros/jazzy/lib/plotjuggler/libDataLoadULog.so is a DataLoader plugin"
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamSample.so is a DataStreamer plugin"  ...disabled, unless option -t is used
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamUDP.so is a DataStreamer plugin"
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamWebSocket.so is a DataStreamer plugin"
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamZMQ.so is a DataStreamer plugin"
"/opt/ros/jazzy/lib/plotjuggler/libParserDataTamer.so is a MessageParser plugin"
"/opt/ros/jazzy/lib/plotjuggler/libParserLineInflux.so is a MessageParser plugin"
"/opt/ros/jazzy/lib/plotjuggler/libParserROS1.so is a MessageParser plugin"
"/opt/ros/jazzy/lib/plotjuggler/libParserROS2.so is a MessageParser plugin"
"/opt/ros/jazzy/lib/plotjuggler/libProtobufParser.so is a MessageParser plugin"
"/opt/ros/jazzy/lib/plotjuggler/libPublisherCSV.so is a StatePublisher plugin"
"/opt/ros/jazzy/lib/plotjuggler/libToolboxFFT.so is a Toolbox plugin"
"/opt/ros/jazzy/lib/plotjuggler/libToolboxLuaEditor.so is a Toolbox plugin"
"/opt/ros/jazzy/lib/plotjuggler/libToolboxQuaternion.so is a Toolbox plugin"
Loading compatible plugins from directory:  "/home/christian/.local/share/PlotJuggler"
^C[ros2run]: Interrupt

The warning logging was initialized more than once may be relevant.

If I disable all plugins via --enabled_plugins " ", I am getting an additional log QBasicTimer::start: QBasicTimer can only be used with threads started with QThread at the end:

$ ros2 run plotjuggler plotjuggler --enabled_plugins " "
QSocketNotifier: Can only be used with threads started with QThread
Loading compatible plugins from directory:  "/opt/ros/jazzy/lib/plotjuggler_ros"
"/opt/ros/jazzy/lib/plotjuggler_ros/libDataLoadROS2.so is a DataLoader plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler_ros/libDataStreamROS2.so is a DataStreamer plugin"  ...skipping, because it is not explicitly enabled
[WARN] [1769036673.333371092] [rclcpp]: logging was initialized more than once
"/opt/ros/jazzy/lib/plotjuggler_ros/libTopicPublisherROS2.so is a StatePublisher plugin"  ...skipping, because it is not explicitly enabled
Loading compatible plugins from directory:  "/opt/ros/jazzy/lib/plotjuggler"
"/opt/ros/jazzy/lib/plotjuggler/libDataLoadCSV.so is a DataLoader plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libDataLoadMCAP.so is a DataLoader plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libDataLoadULog.so is a DataLoader plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamSample.so is a DataStreamer plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamUDP.so is a DataStreamer plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamWebSocket.so is a DataStreamer plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libDataStreamZMQ.so is a DataStreamer plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libParserDataTamer.so is a MessageParser plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libParserLineInflux.so is a MessageParser plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libParserROS1.so is a MessageParser plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libParserROS2.so is a MessageParser plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libProtobufParser.so is a MessageParser plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libPublisherCSV.so is a StatePublisher plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libToolboxFFT.so is a Toolbox plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libToolboxLuaEditor.so is a Toolbox plugin"  ...skipping, because it is not explicitly enabled
"/opt/ros/jazzy/lib/plotjuggler/libToolboxQuaternion.so is a Toolbox plugin"  ...skipping, because it is not explicitly enabled
Loading compatible plugins from directory:  "/home/christian/.local/share/PlotJuggler"
QBasicTimer::start: QBasicTimer can only be used with threads started with QThread
^C[ros2run]: Interrupt

Expected behavior
The process should exit and return control to the terminal.

System details

  • OS: Ubuntu 24.04
  • Platform: bloom package
  • Version 3.13.2

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions