# Preparing for Melodic sync 2020-06-09

**URL:** <https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567>\
**Category:** Melodic\
**Created:** [June 9, 2020, 3:49pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567 "2020-06-09T15:49:50Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![clalancette](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/clalancette/32/4797_2.png) [@clalancette](https://discourse.openrobotics.org/u/clalancette)\
**Post date:** [June 9, 2020, 3:49pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/1 "2020-06-09T15:49:50Z")

</div>

There is currently one [regression](http://repositories.ros.org/status_page/ros_melodic_default.html?q=REGRESSION) and [121 packages](http://repositories.ros.org/status_page/ros_melodic_default.html?q=SYNC) 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.

---

<div class="post-metadata">

**Author:** ![smac](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/smac/32/6763_2.png) [@smac](https://discourse.openrobotics.org/u/smac)\
**Post date:** [June 9, 2020, 5:41pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/2 "2020-06-09T17:41:29Z")

</div>

@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](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.

---

<div class="post-metadata">

**Author:** ![clalancette](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/clalancette/32/4797_2.png) [@clalancette](https://discourse.openrobotics.org/u/clalancette)\
**Post date:** [June 9, 2020, 6:33pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/3 "2020-06-09T18:33:35Z")

</div>

> [@smac](#):
>
> The only 2 things I can find are some pthread not found error which I’ve seen in other jobs before and

Yeah, you can ignore the pthread thing. It’s part of the debug output of CMake when other things fail before it.

> [@smac](#):
>
> some `Assertion failed: GTEST_LIBRARIES (value is '')` which nothing has changed in relation to.

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?

---

<div class="post-metadata">

**Author:** ![smac](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/smac/32/6763_2.png) [@smac](https://discourse.openrobotics.org/u/smac)\
**Post date:** [June 9, 2020, 6:48pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/4 "2020-06-09T18:48:32Z")

</div>

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 [slam\_toolbox: 1.1.4-1 in 'melodic/distribution.yaml' [bloom] by SteveMacenski · Pull Request #25388 · ros/rosdistro · GitHub](https://github.com/ros/rosdistro/pull/25388)

---

<div class="post-metadata">

**Author:** ![tfoote](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/tfoote/32/3813_2.png) [@tfoote](https://discourse.openrobotics.org/u/tfoote)\
**Post date:** [June 9, 2020, 7:13pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/5 "2020-06-09T19:13:50Z")

</div>

This is the first build that failed. [http://build.ros.org/job/Mbin\_uB64\_\_slam\_toolbox\_\_ubuntu\_bionic\_amd64\_\_binary/36/](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:

[https://github.com/ros/rosdistro/pull/25202](https://github.com/ros/rosdistro/pull/25202)

[https://github.com/ros/rosdistro/pull/25001](https://github.com/ros/rosdistro/pull/25001)

[https://github.com/ros/rosdistro/pull/24515](https://github.com/ros/rosdistro/pull/24515)

[https://github.com/ros/rosdistro/pull/25185](https://github.com/ros/rosdistro/pull/25185)

Looking at the changelogs the change that looks to touch this code path most closely related to the failure:

[https://github.com/ros/catkin/pull/1083/files](https://github.com/ros/catkin/pull/1083/files)

---

<div class="post-metadata">

**Author:** ![smac](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/smac/32/6763_2.png) [@smac](https://discourse.openrobotics.org/u/smac)\
**Post date:** [June 9, 2020, 7:23pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/6 "2020-06-09T19:23:12Z")

</div>

> [@tfoote](#):
>
> Looking through that list of triggers it looks like there

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?

---

<div class="post-metadata">

**Author:** ![smac](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/smac/32/6763_2.png) [@smac](https://discourse.openrobotics.org/u/smac)\
**Post date:** [June 9, 2020, 7:52pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/7 "2020-06-09T19:52:25Z")

</div>

Adding `gtest` dependency didn’t seem to fix it [http://build.ros.org/job/Mbin\_uB64\_\_slam\_toolbox\_\_ubuntu\_bionic\_amd64\_\_binary/48/console](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.

---

<div class="post-metadata">

**Author:** ![brycew](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/brycew/32/3104_2.png) [@brycew](https://discourse.openrobotics.org/u/brycew)\
**Post date:** [June 9, 2020, 8:00pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/8 "2020-06-09T20:00:40Z")

</div>

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: [slam\_toolbox/slam\_toolbox/CMakeLists.txt at fba7efd47531def4d0255ce43f0bcd75a8aa2da8 · SteveMacenski/slam\_toolbox · GitHub](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.

---

<div class="post-metadata">

**Author:** ![tfoote](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/tfoote/32/3813_2.png) [@tfoote](https://discourse.openrobotics.org/u/tfoote)\
**Post date:** [June 9, 2020, 8:15pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/9 "2020-06-09T20:15:29Z")

</div>

> [@smac](#):
>
> 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?

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/](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/](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.

---

<div class="post-metadata">

**Author:** ![smac](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/smac/32/6763_2.png) [@smac](https://discourse.openrobotics.org/u/smac)\
**Post date:** [June 9, 2020, 8:22pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/10 "2020-06-09T20:22:21Z")

</div>

> [@brycew](#):
>
> What certainly would solve the problem is adding `project(slam_toolbox LANGUAGES CXX)` here

Doesn’t work – [http://build.ros.org/job/Mpr\_\_slam\_toolbox\_\_ubuntu\_bionic\_amd64/106/console](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](https://github.com/SteveMacenski/slam_toolbox/pull/206/commits/75ade045ecc67045afcde02925f6cc6fdac16e18)

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.

---

<div class="post-metadata">

**Author:** ![dirk-thomas](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/dirk-thomas/32/4328_2.png) [@dirk-thomas](https://discourse.openrobotics.org/u/dirk-thomas)\
**Post date:** [June 9, 2020, 9:47pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/11 "2020-06-09T21:47:13Z")

</div>

> [@brycew](#):
>
> What certainly would solve the problem is adding `project(slam_toolbox LANGUAGES CXX)` here: [slam\_toolbox/slam\_toolbox/CMakeLists.txt at fba7efd47531def4d0255ce43f0bcd75a8aa2da8 · SteveMacenski/slam\_toolbox · GitHub](https://github.com/SteveMacenski/slam_toolbox/blob/fba7efd47531def4d0255ce43f0bcd75a8aa2da8/slam_toolbox/CMakeLists.txt#L2).

This is **not** necessary. The default languages are `C` and `CXX` - see the CMake documentation: [project — CMake 4.1.0-rc2 Documentation](https://cmake.org/cmake/help/latest/command/project.html)

Also `catkin` already exports the `gtest` dependency ([catkin/package.xml at afb0e2a2ae8c0c34c17a2df7b8e1219792246bf1 · ros/catkin · GitHub](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()](https://github.com/SteveMacenski/slam_toolbox/blob/ea70e11d0b33fbdbf29757a36305c8a3a225bfde/slam_toolbox/CMakeLists.txt#L11) call including a separate CMake project which finds `catkin` itself`might be the culprit. I would suggest to make sure that`find\_package(catkin REQUIRED)` is called _before_ that in the main CMake file.

---

<div class="post-metadata">

**Author:** ![clalancette](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/clalancette/32/4797_2.png) [@clalancette](https://discourse.openrobotics.org/u/clalancette)\
**Post date:** [June 12, 2020, 1:38pm UTC](https://discourse.openrobotics.org/t/preparing-for-melodic-sync-2020-06-09/14567/12 "2020-06-12T13:38:12Z")

</div>

The sync is [out](http://discourse.ros.org/t/new-packages-for-melodic-2020-06-12/14640).
