[don't merge!] min reproducer for fast dds shm memory leak#2378
Closed
MichaelOrlov wants to merge 2 commits intojazzyfrom
Closed
[don't merge!] min reproducer for fast dds shm memory leak#2378MichaelOrlov wants to merge 2 commits intojazzyfrom
MichaelOrlov wants to merge 2 commits intojazzyfrom
Conversation
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
It adds two small executables in
rosbag2_examples_cpp:byte_burst_publisherbyte_subscriber_probeFiles:
rosbag2_examples/rosbag2_examples_cpp/src/byte_burst_publisher.cpprosbag2_examples/rosbag2_examples_cpp/src/byte_subscriber_probe.cppWhat they do
byte_burst_publisherpublishes:/small_topic, orstd_msgs/msg/ByteMultiArraymessages on/big_topic/many/t*topics to mimic topic churn from the original reportbyte_subscriber_probeis a minimal non-rosbag2 subscriber for/big_topicBuild
If
example_interfacesis already available in your environment, just buildrosbag2_examples_cpp.If
example_interfacesis present in source but not installed in your current environment, build it first and source that prefix:Run the minimal non-rosbag2 reproducer
Terminal 1, start the subscriber probe:
Terminal 2, publish large messages in bursts:
In a third terminal, monitor RSS of the subscriber process:
watch -n 1 'ps -o pid,rss,cmd -C byte_subscriber_probe'Compare RMW / transport behavior
Fast DDS with SHM enabled
This is the configuration that reproduced the large RSS jump in testing.
Fast DDS with SHM disabled
This should keep RSS much flatter.
Cyclone DDS
This should also stay much flatter.
Optional rosbag2-style publisher behavior
To include transient
/many/t*topic churn:To generate only the small-message stream:
Expected result
The minimal subscriber reproducer is intended to show that:
rmw_fastrtps_cpp+ SHM enabledrmw_fastrtps_cpp+ SHM disabledrmw_cyclonedds_cppThis helps separate rosbag2 behavior from middleware receive-path behavior.