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

update rolling #5

Merged
merged 92 commits into from
Sep 27, 2024
Merged

update rolling #5

merged 92 commits into from
Sep 27, 2024

Conversation

jplapp
Copy link

@jplapp jplapp commented Sep 27, 2024

No description provided.

MichaelOrlov and others added 30 commits January 3, 2024 23:40
* Improve performance in SqliteStorage::get_bagfile_size()

- In SQLite3 DB file size is equal to the db page_count * page_size
- Use DB query to get page_count and page_size instead of filesystem
blocking call.

Signed-off-by: Michael Orlov <[email protected]>

* Address integration tests failure

- Don't use static objects for the SqliteStatement, it causes DB lock
and failure to close and open it again.

Signed-off-by: Michael Orlov <[email protected]>

* Protect get_bagfile_size() with database_write_mutex_

Signed-off-by: Michael Orlov <[email protected]>

* Make get_bagfile_size() lock free to avoid locking double-buffer cache

- Moved db_file_size_ update to the functions which are writing to the
database

Signed-off-by: Michael Orlov <[email protected]>

* Move test_storage_interfaces.cpp to the rosbag2_tests

- Move test_storage_interfaces.cpp to the rosbag2_tests due to the
cyclic dependencies between rosbag2_storage and storage plugins.

Signed-off-by: Michael Orlov <[email protected]>

* Rename test_storage_interfaces.cpp to the test_rosbag2_storage_api.cpp

Signed-off-by: Michael Orlov <[email protected]>

* Address review comments

- Rename `database_write_mutex_` to the `db_read_write_mutex_`
- Add const qualifiers for get_page_size() and
read_total_page_count_locked() methods

Signed-off-by: Michael Orlov <[email protected]>

* Fix Windows warnings in test_rosbag2_storage_api.cpp

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
* feat: add sane defaults for CompressionOptions

Signed-off-by: Arne Böckmann <[email protected]>

* Update rosbag2_compression/include/rosbag2_compression/compression_options.hpp

Co-authored-by: Tomoya Fujita <[email protected]>
Signed-off-by: Arne Böckmann <[email protected]>

---------

Signed-off-by: Arne Böckmann <[email protected]>
Co-authored-by: Arne Böckmann <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
* Change an incorrect TSA annotation.

read_total_page_count_locked is protected by the
db_read_write_mutex_, but doesn't take it itself.
Fix the annotation to reflect that.

Signed-off-by: Chris Lalancette <[email protected]>
remove filesystem header file since it‘s never been used

Signed-off-by: uupks <[email protected]>
)

- Workaround for ros2#1311
- Gracefully stop player in TearDown() before calling rclcpp::shutdown()
in destructor.

Signed-off-by: Michael Orlov <[email protected]>
* Remove rcpputils::fs dependencies from rosbag2_storages

Original author: Kenta Yonekura <[email protected]>

Signed-off-by: Roman Sokolkov <[email protected]>

* Use path::generic_string() for Windows compatibility

Co-authored with Kenta Yonekura <[email protected]>

Signed-off-by: Roman Sokolkov <[email protected]>

* Fix linter errors in osbag2_storage_sqlite3

Signed-off-by: Roman Sokolkov <[email protected]>

---------

Signed-off-by: Roman Sokolkov <[email protected]>
Co-authored-by: Kenta Yonekura <[email protected]>
* use rw_lock to protect mcap metadata lists.

Signed-off-by: Tomoya Fujita <[email protected]>

* introduce MCAPStorage::write_lock_free private method.

Signed-off-by: Tomoya Fujita <[email protected]>

---------

Signed-off-by: Tomoya Fujita <[email protected]>
* Add topic_id returned by storage to the TopicMetadata

- Rationale.
 To be able to distinguish topics by unique topic ID rather than by
 topic name in the future.

Signed-off-by: Michael Orlov <[email protected]>

* Map inner int64_t topic_id to the external uint16_t topic_id in sqlite3

Signed-off-by: Michael Orlov <[email protected]>

* Change TopicMetadata::id type to uint16_t

Signed-off-by: Michael Orlov <[email protected]>

* Use atomic for last_extern_topic_id_

Co-authored-by: Tomoya Fujita <[email protected]>
Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
Uncrustify 0.78 is the new version in Ubuntu 24.04.
It has some small differences in indentation compared
to Uncrustify 0.72, which is what is in Ubuntu 22.04.

In this PR, we make the changes to match what Uncrustify
0.78 wants.  In most cases, I think this is a "better"
indentation.

We also add in strategic use of "*INDENT-OFF*" comments,
which instructs Uncrustify to not indent this particular
section of code.  That is so that this will still pass
the linters on Uncrustify 0.72 while Rolling is still
on that version.

Signed-off-by: Chris Lalancette <[email protected]>
…os2#1575)

* fix: use decltype to get size_t type for macos

Signed-off-by: wep21 <[email protected]>

* use size_t instead of uint64_t for read_ahead_queue_size

Co-authored-by: Tomoya Fujita <[email protected]>
Signed-off-by: Daisuke Nishimatsu <[email protected]>

---------

Signed-off-by: wep21 <[email protected]>
Signed-off-by: Daisuke Nishimatsu <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
…ts (ros2#1585)

* Cleanup in topic_filter.cpp and add test coverage

Signed-off-by: Michael Orlov <[email protected]>

* Use TestTopicFilter name for test fixture in the  test_topic_filter.cpp

- Before we were using RegexFixture. However, many tests under this test
fixture unrelated to the regex. It will be more appropriate and to be
consistent to use one test fixture with more generic name.

Signed-off-by: Michael Orlov <[email protected]>

* Delete test_record_topic_types.cpp

- Rationale:
1. Need to avoid using pub/sub and transport layer for testing basic
functionalities is it could be avoided.
2. The use cases with filtering messages by topic types already covered
in the test_topic_filter.cpp

Signed-off-by: Michael Orlov <[email protected]>

* Add missed `--topic-types` to the error message

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
* add transactional state mutex for RecorderImpl class.

Signed-off-by: Tomoya.Fujita <[email protected]>

* address uncrustify warning.

Signed-off-by: Tomoya.Fujita <[email protected]>

* address review comments and suggested fixes.

Signed-off-by: Tomoya Fujita <[email protected]>

* address review comment and clang-tidy warning.

Signed-off-by: Tomoya Fujita <[email protected]>

* Add Recorder::start_discovery() API and protect discovery with mutex

- Also use non-recursive mutex for the `state_transition_mutex_`

Signed-off-by: Michael Orlov <[email protected]>

* Fix deadlocks in pause(), resume() and toggle_paused() methods

- Removed mutex lock in pause(), resume() and toggle_paused() methods
and use only atomic value change for `paused_` variable.
- Renamed `state_transition_mutex_` to the
`start_stop_transition_mutex_`.
- Add unit test for `toggle_paused()`

Signed-off-by: Michael Orlov <[email protected]>

* Fix for warning about breaking strict-aliasing rules

- Changed type of the paused_ to the std::atomic_uchar

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Tomoya.Fujita <[email protected]>
Signed-off-by: Tomoya Fujita <[email protected]>
Signed-off-by: Michael Orlov <[email protected]>
Co-authored-by: Michael Orlov <[email protected]>
* Add Python stubs for rosbag2_py

Signed-off-by: Roman Sokolkov <[email protected]>

* Add note to DEVELOPING.md

Signed-off-by: Roman Sokolkov <[email protected]>

* Add note to py.typed

Signed-off-by: Roman Sokolkov <[email protected]>

---------

Signed-off-by: Roman Sokolkov <[email protected]>
* Fix for false negative tests in rosbag2_py

-  wait_for(condition: Callable, timout) was incorrectly returning True
after the first iteration even if condition was false.

Signed-off-by: Michael Orlov <[email protected]>

* Address review comments in regards bag_path optimization

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
* Remove rcpputils::fs dependency from rosbag2_cpp

Signed-off-by: Kenta Yonekura <[email protected]>

* Remove rcpputils::fs dependency from tests

Signed-off-by: Kenta Yonekura <[email protected]>

* Replace rcpputils::fs with std::filesystem

Signed-off-by: Roman Sokolkov <[email protected]>

* Use .generic_string() in tests

Signed-off-by: Roman Sokolkov <[email protected]>

* Revert remove_all from fixture

Signed-off-by: Roman Sokolkov <[email protected]>

---------

Signed-off-by: Kenta Yonekura <[email protected]>
Signed-off-by: Roman Sokolkov <[email protected]>
Co-authored-by: Kenta Yonekura <[email protected]>
Signed-off-by: Marco A. Gutierrez <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
* Switch to using ament_vendor_package for lz4.

This is more explicit, and more like how we vendor the
rest of the packages in our ecosystem.

* Rename to liblz4_vendor.

This is to make it clear that we are only vendoring
the library portion, which is BSD, rather than the rest
of it, which is GPL.

Signed-off-by: Chris Lalancette <[email protected]>
…1594)

* rosbag2_storage_mcap: check existence of a file before passing it to mcap::FileStreamReader in order to avoid assertion failing

Signed-off-by: Christopher Wecht <[email protected]>

* rosbag2_storage_mcap: use rcutils_strerror instead of strerror

Signed-off-by: Christopher Wecht <[email protected]>

---------

Signed-off-by: Christopher Wecht <[email protected]>
…on (ros2#1510)

* Initial composition documentation

Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update python snippet

Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Co-authored-by: Tomoya Fujita <[email protected]>
Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Co-authored-by: Tomoya Fujita <[email protected]>
Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Patrick Roncagliolo <[email protected]>

* Add parameters example for composition

Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Patrick Roncagliolo <[email protected]>

* Update README.md

Signed-off-by: Patrick Roncagliolo <[email protected]>

---------

Signed-off-by: Patrick Roncagliolo <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
Co-authored-by: Michael Orlov <[email protected]>
…os2#1557)

* Gracefully handle SIGINT and SIGTERM signals for play and burst CLI

- Intercept signals to call Player::stop() instead of relying on the
rclcpp::shutdown() in default signal handlers.
- Also added static Player::Cancel() method.

Signed-off-by: Michael Orlov <[email protected]>

* Add test_play_cancel to the test_transport.py

Signed-off-by: Michael Orlov <[email protected]>

* Add missing imports in test_transport.py

Signed-off-by: Michael Orlov <[email protected]>

* Regenerate Python stub files (.pyi) after altering API

Signed-off-by: Michael Orlov <[email protected]>

* Add call for original deferred signal handler for Player and Recorder

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
That's because there is code in _storage.cpp
that imports rclpy.duration at runtime.

Signed-off-by: Chris Lalancette <[email protected]>
MichaelOrlov and others added 28 commits June 26, 2024 15:18
…ssion (ros2#1643)

* Bugfix for bag_split event callbacks not called with file compression

Signed-off-by: Michael Orlov <[email protected]>

* Delete redundant "should_split_bagfile" in compression_writer

- It is a non-virtual method and doesn't call from the base class.

Signed-off-by: Michael Orlov <[email protected]>

* Adjust "split_event_calls_callback" for testing multiple splits

Signed-off-by: Michael Orlov <[email protected]>

* Use temp folder for "SequentialWriterTest" fixture instead of "uri"

Signed-off-by: Michael Orlov <[email protected]>

* Add tests for split event callbacks when using file and msg compression

 - Added "split_event_calls_callback_with_msg_compression" and
"split_event_calls_callback_with_file_compression" uit tests

Signed-off-by: Michael Orlov <[email protected]>

* Add debug info to the flaky "can_record_again_after_stop" test

Signed-off-by: Michael Orlov <[email protected]>

* Use `uint64_t` type for `fake_storage_size_` in tests

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
Signed-off-by: Christophe Bedard <[email protected]>
Co-authored-by: mosfet80 <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
…os2#1742)

- The failure was because database file was not properly closed after
throwing exception from the SqliteWrapper constructor and
std::filesystem::remove_all(..) failed to delete temporary folder in the
test fixture destructor.
- Added reset for prepared sql statement before throwing exception.
- Try to close database in constructor if we got exception after
opening it since destructor will not be called in this case.

Signed-off-by: Michael Orlov <[email protected]>
…os2#1743)

- In
record_end_to_end_with_splitting_bagsize_split_is_at_least_specified_size
publisher was starting after terminating recorder.

Signed-off-by: Michael Orlov <[email protected]>
* Bugfix for wrong timestamps in ros2 bag info

- Correctly calculate fractional part for seconds by subtracting
`nanoseconds_from_seconds` from `nanoseconds`.

Signed-off-by: Michael Orlov <[email protected]>

* Adjust expectations in the "ros2 bag info" integration tests

Signed-off-by: Michael Orlov <[email protected]>

* Add leading zeros to the fractional seconds in the format_duration(..)

Signed-off-by: Michael Orlov <[email protected]>

* Adjust expectations in info end-to-end tests by adding leading zero

The real file duration is: 70633730 nanoseconds.
i.e., regex mask shall be "0\\.0706.*s" to match 070633730 nanoseconds.

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
Signed-off-by: Michael Orlov <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
Co-authored-by: Alejandro Hernández Cordero <[email protected]>
* Add optional computation of size contribution to info verb

Signed-off-by: Nicola Loi <[email protected]>

* Update rosbag2_cpp/src/rosbag2_cpp/info.cpp

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Nicola Loi <[email protected]>

* Fixes for review and failed tests

- Also update rosbag2_tests

Signed-off-by: Nicola Loi <[email protected]>

* Support services' size

- Also add new test and update design doc

Signed-off-by: Nicola Loi <[email protected]>

* Fix style divergence

Signed-off-by: Nicola Loi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Nicola Loi <[email protected]>

* Update timestamp check for new ros bag info test

Signed-off-by: Nicola Loi <[email protected]>

---------

Signed-off-by: Nicola Loi <[email protected]>
Co-authored-by: Michael Orlov <[email protected]>
This ensures that we always cleanup and destroy all entities
when we leave the context.  We also make sure to always capture
the exceptions that are "expected", so we get a clean exit.

Signed-off-by: Chris Lalancette <[email protected]>
* Fix incorrect zero size for sqlite storage

Signed-off-by: Roman Sokolkov <[email protected]>

* Adjust unit test to precisely verify the returned file size

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Roman Sokolkov <[email protected]>
Signed-off-by: Michael Orlov <[email protected]>
Co-authored-by: Michael Orlov <[email protected]>
* Add cli option compression-threads-priority

Signed-off-by: Roman Sokolkov <[email protected]>

* Fix CI issues

Signed-off-by: Roman Sokolkov <[email protected]>

* Add timeout for the test_priority_propagated_into_compression_thread

Signed-off-by: Michael Orlov <[email protected]>

* Update help section and doxygen comments for thread priority parameters

Signed-off-by: Michael Orlov <[email protected]>

* Use integer type for compression threads priority default value in tests

- Rationale: To test the same behavior as in the writer factory class

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Roman Sokolkov <[email protected]>
Signed-off-by: Michael Orlov <[email protected]>
Co-authored-by: Michael Orlov <[email protected]>
… to latest versions (ros2#1709)

* Use Ubuntu Noble distros for ci jobs on rolling

Signed-off-by: Michael Orlov <[email protected]>

* Bump actions-ros-lint to version 0.1.3 and actions/checkout to v4

Signed-off-by: Michael Orlov <[email protected]>

* Exclude cppcheck from CI due to known issue that it is very slow

See ament/ament_lint#345 for details.

Signed-off-by: Michael Orlov <[email protected]>

* Bump mypy to version 1.9.0-4ubuntu1 to be aligned with Noble

- Also add `--break-system-packages` to avoid error during pip uninstall

Signed-off-by: Michael Orlov <[email protected]>

* Remove "sudo pip uninstall -y mypy" since it is not installed with pip

Addressing the error message:
Found existing installation: mypy 1.9.0
ERROR: Cannot uninstall mypy 1.9.0, RECORD file not found. Hint:
The package was installed by debian.

Signed-off-by: Michael Orlov <[email protected]>

* Revert "Bump mypy to version 1.9.0-4ubuntu1 to be aligned with Noble"

This reverts commit b5aa018

Signed-off-by: Michael Orlov <[email protected]>

* Fixes for new mypy (Ubuntu 24.04) (ros2#1763)

* Apply new stubgen changes

Signed-off-by: Roman Sokolkov <[email protected]>

* Update CI script and README.md

Signed-off-by: Roman Sokolkov <[email protected]>

---------

Signed-off-by: Roman Sokolkov <[email protected]>

* Remove "--break-system-packages" flag from mypy install in README.md

- Rationale: On Ubuntu 22.04 is an older version of the pip3 and python
version which doesn't have this flag.
- Also removed sudo before "pip3 install -U mypy==1.9" in README.md

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
Signed-off-by: Roman Sokolkov <[email protected]>
Co-authored-by: Roman <[email protected]>
Update mcap cpp to last version

Signed-off-by: mosfet80 <[email protected]>
switch to node 20
node<20 is deprecaded

Signed-off-by: mosfet80 <[email protected]>
* Update ros-lint

Upgrade to Node.js v20

Signed-off-by: mosfet80 <[email protected]>

* Update lint.yml

Signed-off-by: mosfet80 <[email protected]>

* Update lint.yml

Signed-off-by: mosfet80 <[email protected]>

---------

Signed-off-by: mosfet80 <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
* Small cleanups to the rosbag2 tests.

1.  Rename "wait_for_srvice_to_be_ready" to "wait_for_service_to_be_ready".
2.  Make some of the constants constexpr, so we no longer have to capture them.

Signed-off-by: Chris Lalancette <[email protected]>
* Removed warnings

* compile with windows

* make linters happy

Signed-off-by: Alejandro Hernández Cordero <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
* Remove wait_until_shutdown.

This has almost exactly the same functionality as wait_for_condition,
except for two things:

1.  It is templated on the Timeout type.
2.  It calls rclcpp::shutdown after the loop completes.

However, neither of those is necessary; all callers to it use
a std::chrono::duration, and all of the test fixtures already
call rclcpp::shutdown.  Thus, just remove it and make all
callers use wait_for_condition instead.

Signed-off-by: Chris Lalancette <[email protected]>

* Shutdown the async spinner node without rclcpp::shutdown.

That is, we really don't actually want to do a full
rclcpp shutdown here; we only want to stop spinning.
Accomplish that with an executor, and timing out
every 100 milliseconds to check if we are done yet.

Signed-off-by: Chris Lalancette <[email protected]>

* Small fixes to start_async_spin in rosbag2_tests.

Make sure it only spins as long as we haven't shutdown,
and that it wakes up every so often to check that fact.

Signed-off-by: Chris Lalancette <[email protected]>

* Wait for topics to be discovered during recorder->record().

The main reason for that is that these tests generally want
to test certain expectations around how many messages were
received.  However, if discovery takes longer than we expect,
then it could be the case that we "missed" messages at the
beginning because discovery hadn't yet completed.

Fix this by just waiting around for the recorder to get all
the subscriptions it expects before moving on with the test.

Signed-off-by: Chris Lalancette <[email protected]>

* Feedback from review.

Signed-off-by: Chris Lalancette <[email protected]>

* Switch to using MockRecorder.

Signed-off-by: Chris Lalancette <[email protected]>

* Fixes from review.

Signed-off-by: Chris Lalancette <[email protected]>

* Feedback from review.

Signed-off-by: Chris Lalancette <[email protected]>

* Apply suggestions from code review

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Chris Lalancette <[email protected]>

* Switch to using spin, rather than spin_some.

That's because there is currently at least one bug
associated with spin_some in rclcpp.  However, it turns
out that we don't even need to use it, as we can just as
easily use spin() along with exec.cancel().

Signed-off-by: Chris Lalancette <[email protected]>

* Make sure to stop_spinning when we tear down the test.

Signed-off-by: Chris Lalancette <[email protected]>

* Use scopes to shutdown spinning.

Signed-off-by: Chris Lalancette <[email protected]>

* Nested contexts just to explicitly cleanup the async spinners.

Signed-off-by: Chris Lalancette <[email protected]>

* Update rosbag2_transport/test/rosbag2_transport/record_integration_fixture.hpp

Co-authored-by: Michael Orlov <[email protected]>
Signed-off-by: Chris Lalancette <[email protected]>

* Apply the same fix to rosbag2_tests.

Signed-off-by: Chris Lalancette <[email protected]>

---------

Signed-off-by: Chris Lalancette <[email protected]>
Co-authored-by: Michael Orlov <[email protected]>
- Rationale: Uncrustify on CI throws formating errors different from
the latest version compiled from sources.

Signed-off-by: Michael Orlov <[email protected]>
* Bugfix for rosbag2 serialization converter

- Use rmw specific type support for rmw_serilize{deserialize} function
calls.
Note: It is ok for CycloneDDS to use introspection type support for
rmw_serilize{deserialize} functions. However, for FastRTPS it must be
rmw specific type support. e.g. rosidl_typesupport_cpp. Fix works for
both CycloneDDS and FastRTPS rmw.

Signed-off-by: Michael Orlov <[email protected]>

* Add test coverage for default rmv serialization format converter

Signed-off-by: Michael Orlov <[email protected]>

* Run test_serialization_converter for each rmw implementation

- Rationale: To make sure that the default serialization converter can
serialize and deserialize messages with all supported rmw
implementations. Since it uses rmw specific functions for serialization
and deserialization inside.

Signed-off-by: Michael Orlov <[email protected]>

* Address uncrustify formating warnings

Signed-off-by: Michael Orlov <[email protected]>

* Enable sanitizer by default

Signed-off-by: Michael Orlov <[email protected]>

* Address Windows build warnings

Signed-off-by: Michael Orlov <[email protected]>

* Revert "Enable sanitizer by default"

This reverts commit 7241963.

Signed-off-by: Michael Orlov <[email protected]>

---------

Signed-off-by: Michael Orlov <[email protected]>
…o_copy_sub

# Conflicts:
#	ros2bag/ros2bag/verb/record.py
#	rosbag2_cpp/src/rosbag2_cpp/writers/sequential_writer.cpp
#	rosbag2_py/src/rosbag2_py/_transport.cpp
#	rosbag2_transport/CMakeLists.txt
#	rosbag2_transport/src/rosbag2_transport/record_options.cpp
#	rosbag2_transport/src/rosbag2_transport/recorder.cpp
@jplapp jplapp merged commit b4a0971 into rolling Sep 27, 2024
1 of 3 checks passed
@jplapp jplapp mentioned this pull request Sep 27, 2024
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

Successfully merging this pull request may close these issues.