Skip to content

Conversation

@saikishor
Copy link
Member

No description provided.

@codecov
Copy link

codecov bot commented Nov 12, 2025

Codecov Report

❌ Patch coverage is 68.55346% with 50 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.48%. Comparing base (23337e5) to head (54f1967).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
hardware_interface/src/resource_manager.cpp 37.50% 25 Missing ⚠️
controller_manager/src/controller_manager.cpp 17.64% 14 Missing ⚠️
...ontroller_manager/test/test_controller_manager.cpp 88.76% 10 Missing ⚠️
...er_manager/test/controller_manager_test_common.hpp 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2807      +/-   ##
==========================================
- Coverage   89.64%   89.48%   -0.17%     
==========================================
  Files         152      152              
  Lines       17815    17960     +145     
  Branches     1455     1464       +9     
==========================================
+ Hits        15971    16072     +101     
- Misses       1260     1301      +41     
- Partials      584      587       +3     
Flag Coverage Δ
unittests 89.48% <68.55%> (-0.17%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...r_manager/test/test_controller/test_controller.cpp 87.80% <100.00%> (+0.79%) ⬆️
...r_manager/test/test_controller/test_controller.hpp 100.00% <ø> (ø)
...est_controller_manager_hardware_error_handling.cpp 100.00% <100.00%> (ø)
...ager/test/test_controller_manager_urdf_passing.cpp 100.00% <100.00%> (ø)
...t_controllers_chaining_with_controller_manager.cpp 99.25% <100.00%> (ø)
...rdware_interface/types/resource_manager_params.hpp 100.00% <ø> (ø)
...er_manager/test/controller_manager_test_common.hpp 88.15% <75.00%> (-0.89%) ⬇️
...ontroller_manager/test/test_controller_manager.cpp 95.74% <88.76%> (-0.49%) ⬇️
controller_manager/src/controller_manager.cpp 76.93% <17.64%> (-0.11%) ⬇️
hardware_interface/src/resource_manager.cpp 78.12% <37.50%> (-1.71%) ⬇️

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@destogl destogl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the main idea behind this? We are adding handling of failure on HW exception. But I don't know why we should do this just per-default? I agree that should never crash but not like this, instead by making sure we manage the all cases.

@saikishor
Copy link
Member Author

saikishor commented Nov 12, 2025

What is the main idea behind this? We are adding handling of failure on HW exception. But I don't know why we should do this just per-default? I agree that should never crash but not like this, instead by making sure we manage the all cases.

Recently, we are coming across the raised exceptions from third party libraries etc and the problem is if they don't have a proper exception message it is very hard to debug. By crashing, it prints the stack trace and with this we can find the issue easily.

For instance, we have been having an issue last couple of weeks and we spent lot of time on it and today just removing the exception catching and making it to crash with the stack trace it print, we were able to pin point the issue in less than 5 min. If this kind of issue happens in future, it is better to launch it with this parameter and you could find the issue right away. It is more for the debugging purposes.

Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great. Let's just add a description in the debugging section to the docs.

Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we also update the parameter section of the controller_manager, and maybe the release notes?

@saikishor
Copy link
Member Author

Shouldn't we also update the parameter section of the controller_manager

Isn't this autogenerated by GPL?

Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, sure, you are right.

@saikishor saikishor added backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted. labels Nov 16, 2025
Copy link
Member

@bmagyar bmagyar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Let's move forward with this flag & also start thinking about how to go the exact opposite way by catching more exceptions and allowing less "half and catch fire" moments (guarded by the flag, obviously)

@christophfroehlich christophfroehlich merged commit b5fd514 into ros-controls:master Nov 24, 2025
15 of 17 checks passed
@christophfroehlich christophfroehlich deleted the add/handle_exceptions/parameters branch November 24, 2025 11:54
mergify bot pushed a commit that referenced this pull request Nov 24, 2025
(cherry picked from commit b5fd514)

# Conflicts:
#	doc/release_notes.rst
#	hardware_interface/src/resource_manager.cpp
mergify bot pushed a commit that referenced this pull request Nov 24, 2025
(cherry picked from commit b5fd514)

# Conflicts:
#	doc/release_notes.rst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants