From 4a96eac052d40174b5f30daf3c01e6b945a83019 Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Fri, 27 Feb 2026 13:25:43 -0800 Subject: [PATCH 1/2] Fix flakey minimal publisher shutdown Signed-off-by: Blake McHale --- greenwave_monitor/src/minimal_publisher_main.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/greenwave_monitor/src/minimal_publisher_main.cpp b/greenwave_monitor/src/minimal_publisher_main.cpp index 41d70a3..2e3c865 100644 --- a/greenwave_monitor/src/minimal_publisher_main.cpp +++ b/greenwave_monitor/src/minimal_publisher_main.cpp @@ -1,5 +1,5 @@ // SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES -// Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,13 @@ int main(int argc, char * argv[]) rclcpp::init(argc, argv); rclcpp::NodeOptions options; auto node = std::make_shared(options); - rclcpp::spin(node); + try { + rclcpp::spin(node); + } catch (const rclcpp::exceptions::RCLError & e) { + RCLCPP_DEBUG( + node->get_logger(), + "Context became invalid during spin (expected during shutdown): %s", e.what()); + } rclcpp::shutdown(); return 0; } From 54d9ca145e36ce9690a20edf7d46a9ec554225b9 Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Fri, 27 Feb 2026 13:33:32 -0800 Subject: [PATCH 2/2] More tries around mains Signed-off-by: Blake McHale --- .../src/example_greenwave_publisher_main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/greenwave_monitor/src/example_greenwave_publisher_main.cpp b/greenwave_monitor/src/example_greenwave_publisher_main.cpp index 7dcc5fd..8443ddd 100644 --- a/greenwave_monitor/src/example_greenwave_publisher_main.cpp +++ b/greenwave_monitor/src/example_greenwave_publisher_main.cpp @@ -21,7 +21,13 @@ int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared(); - rclcpp::spin(node); + try { + rclcpp::spin(node); + } catch (const rclcpp::exceptions::RCLError & e) { + RCLCPP_DEBUG( + node->get_logger(), + "Context became invalid during spin (expected during shutdown): %s", e.what()); + } rclcpp::shutdown(); return 0; }