Closed mabelzhang closed 4 years ago
I am not familiar with how to run CI on this repo, specifically, how to specify the ROS 1 dependencies. I see that the checks below already fail with roscpp not found.
I am not familiar with how to run CI on this repo, specifically, how to specify the ROS 1 dependencies. I see that the checks below already fail with roscpp not found.
I don't think the build farm is setup to support building ROS1 packages and we've been trying to find a way to build ROS1/2 packages in the same workflow with GitHub actions but no luck.
I see. What is the condition for merging in this repo?
The build that I know of that includes ROS 1 are the "packaging" builds - e.g. https://ci.ros2.org/view/packaging/job/packaging_linux/1830/ - that's the only place ros1_bridge tests are run. maybe it makes sense to run one of these jobs to verify?
That's right, the packaging job linux is the ones which allows to specify an overlay (CI_MIXED_ROS_OVERLAY_PKGS
). All the packages in there are built after the regular ROS2 packages are built and a ROS melodic setup is sourced.
The description should hopefully be helpful: A list of packages - separated by spaces - which explicitly have to be built after sourcing the ROS 1 environment. All packages listed here have to be available from either the primary or supplemental repos file.
EDIT: Nevermind, local issue only.
~I am getting the following error message:~
--- stderr: rosbag2_bag_v2_plugins
/home/karsten/ros2_ws/install/lib/libros1_rosbag_storage.so: undefined reference to `class_loader::systemLibrarySuffix[abi:cxx11]()'
it looks to me as if the tests don't run. when trying them out locally I see that both end to end tests fail as well as uncrustify
[0.932s] 3: [ RUN ] PlayEndToEndTestFixture.play_end_to_end_test_does_not_try_to_publish_ros1_topics
[1.517s] 3: Segmentation fault (core dumped)
That segfault is something I would like you to look into.
The segmentation fault seems a deeper issue. It comes from a test that runs this line:
$ ros2 bag play src/rosbag2_bag_v2/rosbag2_bag_v2_plugins/resources/test_bag_end_to_end.bag -s rosbag_v2
I can reproduce the seg fault on the command line.
If I comment out all the lines in the new functions in this PR, i.e. leave the filter functions empty, and revert has_next()
to the original line, the seg fault still happens for me. That seems to suggest that the problem was there before this PR - but since the master branch does not compile, I could not double-check that.
valgrind traceback:
==179== Thread 9:
==179== Invalid read of size 8
==179== at 0x8D1DCAD: rosbag2_cpp::allocate_introspection_message(rosidl_message_type_support_t const*, rcutils_allocator_t const*) (in /home/developer/colcon_ws_ros12/install/lib/librosbag2_cpp.so)
==179== by 0x8CBD521: rosbag2_cpp::Converter::convert(std::shared_ptr<rosbag2_storage::SerializedBagMessage const>) (in /home/developer/colcon_ws_ros12/install/lib/librosbag2_cpp.so)
==179== by 0x8CC3E2A: rosbag2_cpp::readers::SequentialReader::read_next() (in /home/developer/colcon_ws_ros12/install/lib/librosbag2_cpp.so)
==179== by 0x8CC24EA: rosbag2_cpp::Reader::read_next() (in /home/developer/colcon_ws_ros12/install/lib/librosbag2_cpp.so)
==179== by 0x819A871: rosbag2_transport::Player::load_storage_content(rosbag2_transport::PlayOptions const&) (in /home/developer/colcon_ws_ros12/install/lib/librosbag2_transport.so)
==179== by 0x819A570: rosbag2_transport::Player::play(rosbag2_transport::PlayOptions const&)::{lambda()#1}::operator()() const (in /home/developer/colcon_ws_ros12/install/lib/librosbag2_transport.so)
For the segfault to happen outside of this package, it must be something returned from this package to the reader. But since I revert all the functions and leave the new ones stub, the behavior should be the same as before the PR.
I am wondering if there are any internal changes to rosbag2
in the last two months (Feb 18 was the last PR to this package) that might require other changes in this package? Or do the bag files in this package need updating - since the bag files in rosbag2_tests
needed updating?
As for the uncrustify errors, I saw those and wasn't sure if this package follows different style rules from other ROS 2 packages? Because there are quite a few lines with uncrustify errors in different files - lines I haven't touched, so I wasn't sure whether I should apply the reformatting?
Also fixes compiler warnings for TopicMetadata initialization.
Signed-off-by: Mabel Zhang mabel@openrobotics.org