diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db5660890..78f5ab0bf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,6 +58,8 @@ jobs: - name: Install dependencies run: | apt-get update + # Upgrade the image to the apt sync rosdep installs from: packages from two syncs can be ABI-incompatible. + apt-get upgrade -y apt-get install -y ros-${{ matrix.ros_distro }}-test-msgs if [ "${{ matrix.ros_distro }}" = "humble" ]; then apt-get install -y ros-humble-rmw-cyclonedds-cpp @@ -211,6 +213,8 @@ jobs: - name: Install dependencies run: | apt-get update + # Upgrade the image to the apt sync rosdep installs from: packages from two syncs can be ABI-incompatible. + apt-get upgrade -y apt-get install -y ros-${{ matrix.ros_distro }}-test-msgs if [ "${{ matrix.ros_distro }}" = "humble" ] || [ "${{ matrix.ros_distro }}" = "jazzy" ]; then apt-get install -y ros-${{ matrix.ros_distro }}-rmw-cyclonedds-cpp diff --git a/.github/workflows/opcua-plugin.yml b/.github/workflows/opcua-plugin.yml index 84e50cbdd..5d6a2a5c2 100644 --- a/.github/workflows/opcua-plugin.yml +++ b/.github/workflows/opcua-plugin.yml @@ -72,6 +72,8 @@ jobs: - name: Install dependencies run: | apt-get update + # Upgrade the image to the apt sync rosdep installs from: packages from two syncs can be ABI-incompatible. + apt-get upgrade -y apt-get install -y ros-${{ matrix.ros_distro }}-test-msgs libyaml-cpp-dev libssl-dev source /opt/ros/${{ matrix.ros_distro }}/setup.bash for attempt in 1 2 3; do rosdep update && break; [ "$attempt" = 3 ] && exit 1; echo "rosdep update attempt $attempt failed, retrying" >&2; sleep 5; done diff --git a/src/ros2_medkit_plugins/ros2_medkit_graph_watchdog/test/test_param_drift_integration.cpp b/src/ros2_medkit_plugins/ros2_medkit_graph_watchdog/test/test_param_drift_integration.cpp index b541ee98c..d1bbcadb8 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_graph_watchdog/test/test_param_drift_integration.cpp +++ b/src/ros2_medkit_plugins/ros2_medkit_graph_watchdog/test/test_param_drift_integration.cpp @@ -568,6 +568,14 @@ class ParamDriftIntegrationTest : public ::testing::Test { } } + // Shut the default context down before exit(). Its destructor would otherwise call + // Context::shutdown() after exit() has destroyed rclcpp's thread_local state for this thread. + static void TearDownTestSuite() { + if (rclcpp::ok()) { + rclcpp::shutdown(); + } + } + void SetUp() override { gateway_ = std::make_shared("pd_it_gateway"); target_ = std::make_shared("pd_it_target");