No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_exceptions_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: user code that throws. A state's onEntry and onExit, a synchronous and an asynchronous client behavior's onEntry and onExit, and the update() of a client and of a behavior each throw on request, to run the core's exception handlers and to pin what the core does at each site.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_exceptions_1

Core test for user code that throws. It is not a reference state machine; it exists to run the core’s exception handling on demand and to pin what the core does when a state, a client behavior or an update() throws.

What it does

StA ──▶ SsPlain[ StRest ] ──▶ SsEscalate[ StInner ] ──▶ StRetry ──▶ StA      (500 ms timers)
  │                               │
  │                               └── EvStInitializationFailure<SsEscalate> ──▶ StSafe ──▶ StA
  └── EvCbInitializationFailure<CbSyncThrow | CbAsyncThrow, OrThrow> ──▶ StSafe

The environment variable SM_CORETEST_THROW_SITE names the one site that throws in a run; each throw is announced with a THROWING at <site> line. With none, the default, nothing throws.

Sites the core logs and continues from

All in StA and its behaviors. The machine keeps cycling.

Site Where it throws What the core logs
state_exit StA::onExit exception in onExit
sync_exit CbSyncThrow::onExit Exception onExit - continuing with next client behavior
async_exit CbAsyncThrow::onExit, on the behavior’s exit thread onExit thread ended by exception
client_update every tenth ClThrowingUpdate::update Error in updatable elemnent
behavior_update every tenth CbUpdateThrow::update Exception during Signal Detector update loop

Failed client behavior initializations

A client behavior whose runtimeConfigure or onEntry throws is logged and EvCbInitializationFailure<TBehavior, TOrthogonal> is posted, carrying the behavior’s name and the exception text. For an asynchronous behavior both happen on its own thread at the moment of the throw. The other behaviors of the state go on. StA reacts to the event by going to StSafe.

Site Where it throws What the core logs
sync_configure CbSyncThrow::runtimeConfigure Exception in runtimeConfigure - continuing with next client behavior
sync_entry CbSyncThrow::onEntry Exception on Entry - continuing with next client behavior
async_entry CbAsyncThrow::onEntry, on the behavior’s thread onEntry thread ended by exception

Failed state initializations

A state whose runtimeConfigure or onEntry throws is logged (exception in state initialization), none of its client behaviors, state reactors or event generators is started or later exited, its onExit does not run, and EvStInitializationFailure<TState> is posted. The event is addressed to the failing state first; if no state reacts, the state machine posts it again addressed to each container state in turn, and with no reaction anywhere it calls its onUnhandledStInitializationFailure, whose default logs and leaves the machine where it is.

Site Where it throws Who reacts Result
retry_entry StRetry::onEntry, two entries out of three StRetry, by entering itself again the third attempt gets in; the machine keeps cycling
inner_entry StInner::onEntry SsEscalate, its container StSafe, then the cycle goes on
inner_configure StInner::runtimeConfigure SsEscalate the same
container_entry SsEscalate::onEntry SsEscalate itself StInner is not initialized either; StSafe, then the cycle goes on
rest_entry StRest::onEntry, inside SsPlain nobody passes through SsPlain to the state machine’s hook; the machine stays in StRest with nothing running
state_entry StA::onEntry, top level nobody the hook; the machine stays in StA with nothing running

The test’s state machine overrides the hook to log HOOK onUnhandledStInitializationFailure.

Run

SM_CORETEST_THROW_SITE=inner_entry ros2 launch sm_coretest_exceptions_1 sm_coretest_exceptions_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_exceptions_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs all fourteen sites for 8 s each under TSan, ASan and a plain build. It fails if a continuing site stops cycling, if a reaction does not reach StSafe once per throw, if an unhandled failure does not call the hook exactly once, if any run ends with an uncaught exception, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_exceptions_1 at Robotics Stack Exchange