There is currently one regression and 121 packages ready to sync. Except for fixes for the regression, I plan to start holding packages Wednesday, June 10, with a sync later next week.
@smac The one regression in Melodic right now is in slam_toolbox. How would you like to fix that; a revert to an earlier version, or a fix forward?
Please comment here if there are any other outstanding issues I should know about before performing the sync.
smac
2
@clalancette I noticed that along with a stream of build failures -> successes that have been oscillating in the build farm this week so I didnāt think much of it. There have been no PRs since the last sync so Iām not sure why this is failing.
Here is an example job, anything stick out to you as a problem? http://build.ros.org/job/Mbin_uB64__slam_toolbox__ubuntu_bionic_amd64__binary/46/consoleFull I donāt see anything here actionable. The only 2 things I can find are some pthread not found error which Iāve seen in other jobs before and some Assertion failed: GTEST_LIBRARIES (value is '') which nothing has changed in relation to.
Agreed on fixing it, but its not clear to me whatās wrong to fix.
Yeah, you can ignore the pthread thing. Itās part of the debug output of CMake when other things fail before it.
That seems to be the problem to me. I havenāt looked; is it possible that slam_toolbox is missing a dependency on gtest somehow?
smac
4
That does appear to be the case, but a question is why does this cause an issue now? There have been 2 (maybe even 3) releases in Melodic since that was added without a failure over the last 9 months since gtest was introduced.
Anyhow, Iāll add that to the package.xml and see if that fixes it up, but Iām not hopeful. Edit: PR https://github.com/ros/rosdistro/pull/25388
This is the first build that failed. http://build.ros.org/job/Mbin_uB64__slam_toolbox__ubuntu_bionic_amd64__binary/36/
Looking through that list of triggers it looks like there were a couple of recent releasese.
tfoote@snowman4:/tmp Last: [0] (0s Seconds)
$ grep Msrc_uB triggers.txt | sort | uniq
Started by upstream project Msrc_uB__catkin__ubuntu_bionic__source build number 7
Started by upstream project Msrc_uB__message_filters__ubuntu_bionic__source build number 7
Started by upstream project Msrc_uB__python_qt_binding__ubuntu_bionic__source build number 7
Started by upstream project Msrc_uB__rosbag_storage__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__rosbag__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__rosbash__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__rosclean__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__roscpp__ubuntu_bionic__source build number 6
Started by upstream project Msrc_uB__roslaunch__ubuntu_bionic__source build number 6
Started by upstream project Msrc_uB__roslib__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__rosmake__ubuntu_bionic__source build number 6
Started by upstream project Msrc_uB__rosmaster__ubuntu_bionic__source build number 7
Started by upstream project Msrc_uB__rosmsg__ubuntu_bionic__source build number 7
Started by upstream project Msrc_uB__rosnode__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__rosservice__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__rostopic__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__roswtf__ubuntu_bionic__source build number 5
Started by upstream project Msrc_uB__topic_tools__ubuntu_bionic__source build number 5
tfoote@snowman4:/tmp Last: [0] (0s Seconds)
$ grep Msrc_uB triggers.txt | sort | uniq | wc -l
18
Which appears to follow the following releases:
Looking at the changelogs the change that looks to touch this code path most closely related to the failure:
1 Like
smac
6
Awesome, for my future ability to debug issues like this myself, how do I get to a place to be able to search for these triggers ā or is this part of the internal OR toolset? Is there some documentation surrounding this?
smac
7
Adding gtest dependency didnāt seem to fix it http://build.ros.org/job/Mbin_uB64__slam_toolbox__ubuntu_bionic_amd64__binary/48/console. trying to add rosunit as well. New release to follow.
Edit: this isnāt as simple as I thought unfortunately, it might take me a bit to figure this one out.
Adding dependencies I donāt think should solve the problem. If by the time that the catkin package is found CMake hasnāt deduced that C++ is a language, then it wonāt include gtest.
What certainly would solve the problem is adding project(slam_toolbox LANGUAGES CXX) here: https://github.com/SteveMacenski/slam_toolbox/blob/fba7efd47531def4d0255ce43f0bcd75a8aa2da8/slam_toolbox/CMakeLists.txt#L2. You shouldnāt have to do this, but I honestly have no idea if the buildfarm environment is effecting what CMake is doing under the hood.
1 Like
The triggers are directly from the public Jenkins page I linked to at http://build.ros.org/job/Mbin_uB64__slam_toolbox__ubuntu_bionic_amd64__binary/36/
I copy and pasted the body into triggers.txt and above you can see my invocations of grep, sort, and uniq to filter them down. Then I just cross referenced those source builds to the changes in the rosdistro. And then browsed through the changelogs. Nothing magic, but a bunch of manual work.
With a core change like this the trigger lists are pretty long and the grepping is necessary. Often itās just immediately readable. For example your most recent release caused a single trigger: http://build.ros.org/job/Mbin_uB64__slam_toolbox__ubuntu_bionic_amd64__binary/48/
If this caused a regression it would be easy to figure out where it came from.
smac
10
Doesnāt work ā http://build.ros.org/job/Mpr__slam_toolbox__ubuntu_bionic_amd64/106/console still fails with the same Assertion failed: GTEST_LIBRARIES (value is ''). Commit bump to 1.1.5 by SteveMacenski Ā· Pull Request #206 Ā· SteveMacenski/slam_toolbox Ā· GitHub
Mhm this is fun. Iām also staring at the costmap_2d test setup and I canāt find a place where we deviate.
Edit: Iām just disabling tests for melodic for now. Thereās only a few tests for some experimental features not used in the main nodes. Its not worth blocking the rest of the package for. Iāll see if this reappears in Noetic and Iāll fix there if necessary & reenable tests in melodic.
This is not necessary. The default languages are C and CXX - see the CMake documentation: https://cmake.org/cmake/help/latest/command/project.html
Also catkin already exports the gtest dependency (https://github.com/ros/catkin/blob/afb0e2a2ae8c0c34c17a2df7b8e1219792246bf1/package.xml#L34-L35). So since your package build depends on catkin that already ensures that gtest is available.
Also based on the build output gtest is certainly installed:
-- Found gtest sources under '/usr/src/googletest': gtests will be built
My best guess is that the add_subdirectory() call including a separate CMake project which finds catkin itselfmight be the culprit. I would suggest to make sure thatfind_package(catkin REQUIRED)` is called before that in the main CMake file.
1 Like