kas-lab / rosa

A knowledge-based framework for Robot Self-adaptation (ROSA)
https://kas-lab.github.io/rosa/
Apache License 2.0
0 stars 0 forks source link

Configuration planner crashing #55

Closed Rezenders closed 9 months ago

Rezenders commented 9 months ago

This is one of the bugs, related to spin something, and generator already executing. I guess it is related to how I spin the node, but as far as I know I am doing it in the recommended way. There was another error which I lost the logs, I am not sure what is was but it was something ROS related, not application specific

[configuration_planner_node.py-2] Traceback (most recent call last):
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/metacontrol_plan/lib/metacontrol_plan/configuration_planner_node.py", line 33, in <module>
[configuration_planner_node.py-2]     main()
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/metacontrol_plan/lib/metacontrol_plan/configuration_planner_node.py", line 27, in main
[configuration_planner_node.py-2]     executor.spin()
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 279, in spin
[configuration_planner_node.py-2]     self.spin_once()
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 764, in spin_once
[configuration_planner_node.py-2]     self._spin_once_impl(timeout_sec)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 745, in _spin_once_impl
[configuration_planner_node.py-2]     handler, entity, node = self.wait_for_ready_callbacks(
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 691, in wait_for_ready_callbacks
[configuration_planner_node.py-2]     return next(self._cb_iter)
[configuration_planner_node.py-2] ValueError: generator already executing
Rezenders commented 9 months ago

Might be related? https://answers.ros.org/question/404321/ros2-test-is-not-finishing-its-execution/

Maybe what is causing this bug is how I am starting new nodes with ConfigurationExecutor?

Rezenders commented 9 months ago
[configuration_planner_node.py-2] Traceback (most recent call last):
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/rosa_plan/lib/rosa_plan/configuration_planner_node.py", line 41, in <module>
[configuration_planner_node.py-2]     main()
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/rosa_plan/lib/rosa_plan/configuration_planner_node.py", line 29, in main
[configuration_planner_node.py-2]     executor.spin()
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 279, in spin
[configuration_planner_node.py-2]     self.spin_once()
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 764, in spin_once
[configuration_planner_node.py-2]     self._spin_once_impl(timeout_sec)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 761, in _spin_once_impl
[configuration_planner_node.py-2]     future.result()
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/task.py", line 94, in result
[configuration_planner_node.py-2]     raise self.exception()
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/task.py", line 239, in __call__
[configuration_planner_node.py-2]     self._handler.send(None)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 418, in handler
[configuration_planner_node.py-2]     await call_coroutine(entity, arg)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 343, in _execute_subscription
[configuration_planner_node.py-2]     await await_or_execute(sub.callback, msg)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 107, in await_or_execute
[configuration_planner_node.py-2]     return callback(*args)
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/rosa_plan/local/lib/python3.10/dist-packages/rosa_plan/configuration_planner.py", line 184, in event_cb
[configuration_planner_node.py-2]     selected_config = self.plan_adaptation()
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/rosa_plan/local/lib/python3.10/dist-packages/rosa_plan/configuration_planner.py", line 173, in plan_adaptation
[configuration_planner_node.py-2]     selected_component_configs = self.plan_component_adaptation(
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/rosa_plan/local/lib/python3.10/dist-packages/rosa_plan/configuration_planner.py", line 138, in plan_component_adaptation
[configuration_planner_node.py-2]     components = self.call_service(
[configuration_planner_node.py-2]   File "/home/gus/exp_metacontrol_ws/install/rosa_plan/local/lib/python3.10/dist-packages/rosa_plan/configuration_planner.py", line 197, in call_service
[configuration_planner_node.py-2]     self.executor.spin_until_future_complete(future, timeout_sec=5.0)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 295, in spin_until_future_complete
[configuration_planner_node.py-2]     self.spin_once_until_future_complete(future, timeout_left)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 767, in spin_once_until_future_complete
[configuration_planner_node.py-2]     self._spin_once_impl(timeout_sec, future.done)
[configuration_planner_node.py-2]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/executors.py", line 760, in _spin_once_impl
[configuration_planner_node.py-2]     self._futures.remove(future)
[configuration_planner_node.py-2] ValueError: list.remove(x): x not in list
[configuration_planner_node.py-2] The following exception was never retrieved: cannot use Destroyable because destruction was requested
Rezenders commented 9 months ago

Upgrading ubuntu seems to have solved this issue