Switch nav2_map_server to use modern CMake idioms.#4557
Switch nav2_map_server to use modern CMake idioms.#4557SteveMacenski merged 2 commits intoros-navigation:mainfrom
Conversation
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
| std::string(" --ros-args --remap __node:=map_saver_test_node"); | ||
| return_code = system(command.c_str()); | ||
| EXPECT_EQ(return_code, 65280); | ||
| EXPECT_EQ(return_code, 256); |
There was a problem hiding this comment.
No note assuming CI test is happy, but noting this for myself to check. Map server package seems to have failed its CI tests, but still running so I can't see where yet
There was a problem hiding this comment.
Ah, it looks like there are bunch of failing external symbols in the tests. That means that something is wrong with this PR. I'll take a closer look and see if I can reproduce locally.
There was a problem hiding this comment.
So I can't reproduce, and looking at the code again there is nothing obviously wrong jumping out at me.
I'm not that familiar with CircleCI, but in the job below it never seems to run the "Setup Workspace" or "Build Workspace" steps that are listed in https://github.com/ros-navigation/navigation2/blob/main/.circleci/config.yml . Looking at those logs would be helpful for me to try and reproduce.
@SteveMacenski Do you know why those steps aren't present in that run, and/or how I might get access to those logs?
There was a problem hiding this comment.
The release_build job below does the building of the main software stack (system_build does the system tests separately). The job that's failing (release_test) is only doing the colcon test bits on those built and cached artifacts from the builds.
You can find the build artifacts here: https://app.circleci.com/pipelines/github/ros-navigation/navigation2/12291/workflows/ec12a613-f542-4479-9c2b-640744e3fbaf/jobs/37306/artifacts
You can find the test artifacts here: https://app.circleci.com/pipelines/github/ros-navigation/navigation2/12291/workflows/ec12a613-f542-4479-9c2b-640744e3fbaf/jobs/37308/artifacts
I'm also retriggering the build from the start to validate its not a fluke, but it does seem like its a problem
There was a problem hiding this comment.
Something else worth trying is to update v26 to v27 in the 3x places in the circle config file to break the cache which may contain the previous works and rebuild from scratch.
There was a problem hiding this comment.
Ah, thanks for pointing out where it was built. Following that, I was able to see that the CircleCI job uses a number of mixins, and compiling locally with those mixins I can reproduce. Now to see what is going on here.
There was a problem hiding this comment.
All right, I found the issue. 66e300b should fix it.
|
@clalancette unrelated to this PR, but wanted to point something out since it relates to the issues we reported during the Jazzy migration: The CI test failure we see in Blaming Test A: Pushing the Test B: This works Test C: Attempting to use spin some instead of spin all also fails Test D: Lets try ticking the node multiple times while having the single This works Thus, I can change it to (#4558): to keep the same behavior and get it working again, but this is worth noting to someone on the ROS 2 core side |
It requires it for proper operation. Signed-off-by: Chris Lalancette <clalancette@gmail.com>
Yes, there has been a lot of poking at that recently. Something that is new-ish here is ros2/rclcpp#2517, which was merged back on May 2nd, but may or may not have been released until recently (it is a little hard to tell exactly when something was merged). If you go back to rclcpp version 28.2.0, does that make a difference? |
|
I tested and no double-spin is required for this test with 28.2.0 (i.e. patch in #4558 to fix our CI is not required). So that's a new change in behavior from rclcpp causing the issue in our CI. Note that we've seen some 'warm up spins' required since the initial Jazzy migration to 24.04 #4298 (late May) which introduced a double spin or 'while not received -> spin some' logic. Rolling's release on April 30 had 28.2.0 https://discourse.ros.org/t/new-packages-for-ros-2-rolling-ridley-2024-04-30/37485 so we had also seen it then in some other cases - but perhaps those were fixed by the later changes and no longer required. I'm investigating that now. |
|
Your changes fixed it (minus the test we're discussing) |
* Switch nav2_map_server to use modern CMake idioms. Signed-off-by: Chris Lalancette <clalancette@gmail.com> * Make library_name depend on map_io_library_name. It requires it for proper operation. Signed-off-by: Chris Lalancette <clalancette@gmail.com> --------- Signed-off-by: Chris Lalancette <clalancette@gmail.com> Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
Basic Info
Description of contribution in a few bullet points
This commit does a number of things:
lifecycle_msgsas a dependency.test_map_saver_cli.cpp. In particular, it was complaining that__node:=map_saver_test_nodewas deprecated. That is true, but adding in--ros-args --remapdidn't work, and that is because a space was missing from the front of that. With that change now in place, I also had to update the return value from the command, since it now returns 256 instead of 65280.Description of documentation updates required from your changes
None needed
Future work that may be required in bullet points
The rest of the packages in this repository need a similar treatment (PRs will be upcoming).
For Maintainers: