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

Subscriptions are not triggered sometimes #52

Closed
esteve opened this issue Jun 30, 2015 · 5 comments · Fixed by ros2/rmw_connext#66
Closed

Subscriptions are not triggered sometimes #52

esteve opened this issue Jun 30, 2015 · 5 comments · Fixed by ros2/rmw_connext#66
Assignees

Comments

@esteve
Copy link
Member

esteve commented Jun 30, 2015

In the parameter events examples, the callback function is not always triggered. However further testing shows that the data was received, but the executor didn't trigger the callback. This may indicate that there's an issue in the way SingleThreadedExceutor is used.

@esteve esteve added the in progress Actively being worked on (Kanban column) label Jun 30, 2015
@esteve esteve self-assigned this Jun 30, 2015
@gerkey
Copy link
Member

gerkey commented Jul 7, 2015

Happens in OpenSplice and Connext, so it's likely in our code somewhere. Consider writing a test that reproduces the problem. Also walk somebody else on the team through the problem.

@dirk-thomas
Copy link
Member

The same fix as implemented for subscriptions (ros2/rmw_connext#62 ros2/rmw_opensplice#57) needs to be applied for server and client.

@esteve esteve added in review Waiting for review (Kanban column) and removed in progress Actively being worked on (Kanban column) labels Aug 3, 2015
@dirk-thomas
Copy link
Member

We will try to write a test which fails before and passes afterwards. E.g. similar to the subscription: calling two services, spin and likely the second request is never be handled.

@gerkey gerkey added ready Work is about to start (Kanban column) and removed in review Waiting for review (Kanban column) labels Aug 18, 2015
@esteve esteve added in progress Actively being worked on (Kanban column) and removed ready Work is about to start (Kanban column) labels Aug 21, 2015
esteve added a commit to ros2/system_tests that referenced this issue Sep 16, 2015
@esteve esteve added ready Work is about to start (Kanban column) and removed in progress Actively being worked on (Kanban column) labels Sep 17, 2015
@dirk-thomas dirk-thomas removed the ready Work is about to start (Kanban column) label Oct 13, 2015
@dirk-thomas
Copy link
Member

I implemented the test in ros2/system_tests#45.

@dirk-thomas dirk-thomas added the in review Waiting for review (Kanban column) label Oct 15, 2015
@esteve esteve removed the in review Waiting for review (Kanban column) label Oct 15, 2015
@esteve esteve self-assigned this Oct 15, 2015
@esteve esteve reopened this Oct 15, 2015
@esteve esteve added the in review Waiting for review (Kanban column) label Oct 15, 2015
@dirk-thomas
Copy link
Member

@esteve Can you please test the original problem related to parameter events again with the patches being merged and either close this ticket or fill in more information what still doesn't work.

@esteve esteve closed this as completed Oct 15, 2015
@esteve esteve removed the in review Waiting for review (Kanban column) label Oct 15, 2015
DensoADAS pushed a commit to DensoADAS/rclcpp that referenced this issue Aug 5, 2022
* Adapt new interface

* Try to write and read rcutils_char_array_t BLOBs in sqlite

* Add simple test for arbitrary char ptr

* Refactor SqliteWrapper and add tests

* Write and read actual timestamp from serialized message and add relative tests

* Add SqliteStatementWrapper class and refactor SqliteStorage and SqliteWrapper

* Refactor test fixture

* ros2GH-50 Assert message content in write_integration_test, and remove TODOs

* ros2GH-50 Remove sqlite_storage_plugin unit tests

* ros2GH-50 Refactor SqliteStatements and SqliteStorage

* ros2GH-50 Fix build after rebase

* ros2GH-50 Make has_next() method no more const

* ros2GH-52 Extend statement wrapper with a generic bind

* ros2GH-50 Refactor after rebase

* ros2GH-59 cleanup db interface

- Remove virtual on methods as this was added only for unit tests. We
  decided to use only integration tests for the sqlite plugins.
- Changes semantics of SqliteStatement: represents always a prepared
  statement if not null.
- Ensures that a SqliteStatementWrapper cannot be copied and does not
  publicly expose its sqlite_stmt as this would cause memory corruption.

* ros2GH-59 Introduce general read interface for sqlite statements

- Uses a std::tuple for row data
- Exposes an iterator interface for the query result

* ros2GH-59 Cleanup: remove unused files

* ros2GH-59 make sqlite interface fluent

* ros2GH-59 move creation of serialized message to rosbag2_storage

This is not storage plugin specific but will be needed by most (if
not all) plugins.

* Change rcutil_char_array_t to rmw_serialized_message_t in subscriber

* Remove debugging output in test
DensoADAS pushed a commit to DensoADAS/rclcpp that referenced this issue Aug 5, 2022
* ros2GH-52 Extend db schema to include topic meta data

- Two table db layout (messages and topics)
- Messages table references topics table but without foreign key for
  improved write performance
- Create_topic must be called for every topic prior to storing a
  message of this topic.
- Sqlite_storage caches all known topics
- At least for now the type information is stored as a simple string.

* ros2GH-54 Make first rcl subscription prototype work

* ros2GH-54 find type name from topic

* ros2GH-54 Publish messages from database knowing only topic name and pass topic name by terminal

* ros2GH-54 Refactoring of typesupport helpers

* ros2GH-54 Use c++ typesupport

* ros2GH-54 Use cpp typesupport and rclcpp::Node for publisher

* ros2GH-54 Add raw subscription and use in rosbag_record

* ros2GH-54 Add Rosbag2Node and Rosbag2Publisher classes and use them in Rosbag2::play

* ros2GH-54 Rename Rosbag2Publisher to RawPublisher

* ros2GH-54 Minor refactoring of Rosbag2Node

* ros2GH-54 Extract and test waiting for topic into its own method

* ros2GH-54 Fix read integration tests and linters

* ros2GH-55 Refactor Rosbag2Node::create_raw_publisher()

* ros2GH-54 Add subscription method to rosbag node

* ros2GH-54 Keep subscription alive

* ros2GH-54: Extract subscription to correct class

* ros2GH-55 Change interface of raw_publisher to match subscriber

* ros2GH-54 Add test for rosbag node

* ros2GH-54 Unfriend rclcpp class

* ros2GH-54 Make test more robust

* ros2GH-54 Fix build

* ros2GH-54 Minor cleanup and documentation

* ros2GH-55 Minor refactoring + TODO comment

* ros2GH-54 Change dynamic library folder on Windows

* ros2GH-54 Fix build

* ros2GH-54 Add shutdown to test

* ros2GH-55 Add test helpers methods for usage in multiple tests

* ros2GH-55 Add new method to read all topics and types in BaseReadInterface and use it in Rosbag2::play

* ros2GH-55 Fix gcc and msvc

* ros2GH-54 Rename raw to generic in publisher/subscriber

* ros2GH-55 Check that topic and associated type in bag file are well defined before playing back messages

* ros2GH-54 Prevent unnecessary error message loading storage

* ros2GH-54 Fix memory leak

* ros2GH-54 stabilize node test

* ros2GH-55 Check if database exists when opening storage with READ_ONLY flag

* ros2GH-54 Minor cleanup of subscriber

* ros2GH-54 Wait a small amount of time to let node discover other nodes

* Add logging to false case

* ros2GH-54 Catch exceptions and exit cleanly

* Use rmw_serialized_message_t and rcutils_char_array_t consistently

* ros2GH-4 Refactoring for correctness

- pass a few strings as const reference
- throw error when no topics could be found

* Improve error messages when loading plugins

* alphabetical order

* type_id -> type
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 a pull request may close this issue.

3 participants