Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug] failing build on rolling #254

Closed
JanStaschulat opened this issue Mar 1, 2022 · 12 comments
Closed

[bug] failing build on rolling #254

JanStaschulat opened this issue Mar 1, 2022 · 12 comments
Assignees

Comments

@JanStaschulat
Copy link
Contributor

JanStaschulat commented Mar 1, 2022

CI job fails on rolling because of Events Executor PR (ros2/rmw#286) A new header file has been added to rmw repository, but the rmw package is not cloned in ros-tooling/actions-ros-ci :

ros-tooling/action-ros-ci creates it's own docker container in which the rcl-package is built from scratch but not the rmw package:

  Starting >>> rcl
  --- output: rcl
...
  -- Build files have been written to: /__w/rclc/rclc/ros_ws/build/rcl
  Scanning dependencies of target gtest
  [  0%] Building CXX object gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
  Scanning dependencies of target rcl
  [  1%] Building C object CMakeFiles/rcl.dir/src/rcl/arguments.c.o
  [  1%] Building C object CMakeFiles/rcl.dir/src/rcl/client.c.o
  In file included from /__w/rclc/rclc/ros_ws/src/rcl/rcl/include/rcl/client.h:27,
                   from /__w/rclc/rclc/ros_ws/src/rcl/rcl/src/rcl/client.c:20:
  /__w/rclc/rclc/ros_ws/src/rcl/rcl/include/rcl/event_callback.h:18:10: fatal error: rmw/event_callback_type.h: No such file or directory
     18 | #include "rmw/event_callback_type.h"
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.

https://github.com/ros2/rclc/runs/5372614775?check_suite_focus=true

https://github.com/ros2/rclc/runs/5371188010?check_suite_focus=true

A new file (event_callback_type.h) has been added to the repository.
We cannot sudo apt-get install the new rmw package, because rmw has not been released as bloom release lately:

https://github.com/ros/rosdistro/commits/master/rolling

@ralph-lange @pablogs9 Shall we clone the 'rmw' repo in the CI action for now, like here? Any other suggestions?

@JanStaschulat JanStaschulat self-assigned this Mar 1, 2022
@JanStaschulat JanStaschulat changed the title failing build on rolling [bug rolling] failing build on rolling Mar 1, 2022
@JanStaschulat JanStaschulat changed the title [bug rolling] failing build on rolling [bug] failing build on rolling Mar 1, 2022
@ralph-lange
Copy link
Collaborator

Hi, @JanStaschulat, I like your idea of cloning the rmw repo in the CI action until it has been released.

@pablogs9
Copy link
Member

pablogs9 commented Mar 1, 2022

I'm also ok with cloning it

@JanStaschulat
Copy link
Contributor Author

JanStaschulat commented Mar 1, 2022

But still I am wondering, why the most recent version of the rcl package (with the EventExecutor PR which expects the header file in rmw) is downloaded in the rclc CI action, but the rmw package is not .

@JanStaschulat
Copy link
Contributor Author

cloning the repo did not solve the problem

   -- Build files have been written to: /__w/rclc/rclc/ros_ws/build/rcl
  Scanning dependencies of target gtest
  [  0%] Building CXX object gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
  Scanning dependencies of target rcl
  [  1%] Building C object CMakeFiles/rcl.dir/src/rcl/arguments.c.o
  [  1%] Building C object CMakeFiles/rcl.dir/src/rcl/client.c.o
  In file included from /__w/rclc/rclc/ros_ws/src/rcl/rcl/include/rcl/client.h:27,
                   from /__w/rclc/rclc/ros_ws/src/rcl/rcl/src/rcl/client.c:20:
  /__w/rclc/rclc/ros_ws/src/rcl/rcl/include/rcl/event_callback.h:18:10: fatal error: rmw/event_callback_type.h: No such file or directory
     18 | #include "rmw/event_callback_type.h"
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[2]: *** [CMakeFiles/rcl.dir/build.make:76: CMakeFiles/rcl.dir/src/rcl/client.c.o] Error 1
  make[1]: *** [CMakeFiles/Makefile2:255: CMakeFiles/rcl.dir/all] Error 2
  make[1]: *** Waiting for unfinished jobs....
  [  2%] Linking CXX static library libgtest.a
  [  2%] Built target gtest
  make: *** [Makefile:141: all] Error 2

https://github.com/ros2/rclc/runs/5372137665?check_suite_focus=true
It still only builds rcl and does not take the local rmw.

I am trying now to add rmw as dependency in package.xml

@JanStaschulat
Copy link
Contributor Author

JanStaschulat commented Mar 1, 2022

unfortunately they have not increased the version of rmw package. It is still
Found rmw: 5.1.0 (/opt/ros/rolling/share/rmw/cmake)
(three month ago)
https://github.com/ros2/rmw/blob/master/rmw/CHANGELOG.rst

So the rmw packge with EventsExecutor PR has the same version as the released rolling package 3 months ago. :(

@JanStaschulat
Copy link
Contributor Author

JanStaschulat commented Mar 1, 2022

cloning the repo in a seperate step (e.g. step before building rclc) did not resolve the error.
ros-tooling/action-ros-ci creates it's own docker container in which it builds rcl-package from scratch but not the rmw package.

  Starting >>> rcl
  --- output: rcl
...
  -- Build files have been written to: /__w/rclc/rclc/ros_ws/build/rcl
  Scanning dependencies of target gtest
  [  0%] Building CXX object gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
  Scanning dependencies of target rcl
  [  1%] Building C object CMakeFiles/rcl.dir/src/rcl/arguments.c.o
  [  1%] Building C object CMakeFiles/rcl.dir/src/rcl/client.c.o
  In file included from /__w/rclc/rclc/ros_ws/src/rcl/rcl/include/rcl/client.h:27,
                   from /__w/rclc/rclc/ros_ws/src/rcl/rcl/src/rcl/client.c:20:
  /__w/rclc/rclc/ros_ws/src/rcl/rcl/include/rcl/event_callback.h:18:10: fatal error: rmw/event_callback_type.h: No such file or directory
     18 | #include "rmw/event_callback_type.h"
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.

https://github.com/ros2/rclc/runs/5372614775?check_suite_focus=true

@JanStaschulat
Copy link
Contributor Author

JanStaschulat commented Mar 1, 2022

tried several things, but none of them revolved the issue:

  • cloned rmw repository and build one step before building rclc (b5d42db)
  • updated ros-tooling/action-ros-ci version to 0.2.4 (064ac1a)
  • added rmw to package-name (064ac1a)

@wjwwood @christophebedard any suggestions?

  • Do you plan to release a new version of rmw repository?
  • Why is only rcl cloned and built in actions-ros-ci and not rmw? Could you include the rmw repository as dependency too?
  • What could I add to our rclc-CI actions.yml so that the rmw repo is cloned and locally built before rcl in the actions-ros-ci step?

@christophebedard
Copy link
Member

christophebedard commented Mar 1, 2022

Why is only rcl cloned and built in actions-ros-ci and not rmw? Could you include the rmw repository as dependency too?

This repo has action-ros-ci configured to clone rcl to build it from source:

As I mentioned over on the PR, if you add rmw to the dependencies.repos file, it should fix this issue.

@JanStaschulat
Copy link
Contributor Author

JanStaschulat commented Mar 1, 2022

@christophebedard thanks a lot for your suggestion. I added the relevant rmw repositories to dependencies.repos.

The PR now builds successfully :)

@JanStaschulat
Copy link
Contributor Author

JanStaschulat commented Mar 1, 2022

Created an issue to remove these dependencies, once these changes in rmw become available as ROS 2 rolling distribution.

@wjwwood
Copy link
Member

wjwwood commented Mar 1, 2022

We don't necessarily do releases after every change, so building just rcl from master while using rmw and other packages from binary is only going to work sometimes, because that's a combination we just don't test and honestly isn't a very logical selection of versions to build together.

I'd recommend with building all dependencies from source or building none from source, but that sounds like something you can configure in the Actions you're using.

An rmw release should happen in a few days.

@JanStaschulat
Copy link
Contributor Author

@wjwwood Thank you very much for your feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants