-
Notifications
You must be signed in to change notification settings - Fork 66
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
TimeSequencer.simple test hanging in CI #21
Comments
It looks like we've got |
happens in rolling, output in in below. zs@zs-vm-2204:~/ga_ws/ga_ros/colcon/build/message_filters$ ./message_filters-test_fuzz
[==========] Running 3 tests from 3 test suites.
[----------] Global test environment set-up.
[----------] 1 test from TimeSequencer
[ RUN ] TimeSequencer.fuzz_sequencer
unknown file: Failure
C++ exception with description "can't compare times with different time sources" thrown in the test body.
[ FAILED ] TimeSequencer.fuzz_sequencer (26 ms)
[----------] 1 test from TimeSequencer (26 ms total)
[----------] 1 test from TimeSynchronizer
[ RUN ] TimeSynchronizer.fuzz_synchronizer
[ OK ] TimeSynchronizer.fuzz_synchronizer (5013 ms)
[----------] 1 test from TimeSynchronizer (5013 ms total)
[----------] 1 test from Subscriber
[ RUN ] Subscriber.fuzz_subscriber
[ OK ] Subscriber.fuzz_subscriber (5022 ms)
[----------] 1 test from Subscriber (5022 ms total)
[----------] Global test environment tear-down
[==========] 3 tests from 3 test suites ran. (10061 ms total)
[ PASSED ] 2 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] TimeSequencer.fuzz_sequencer
1 FAILED TEST |
After migrating from galactic to humble I encountered the same exception when using There are two problematic comparisons, a first here when
and a second here during
It seems that the problem was introduced by fixing issue #72. This changes the
The comparison between In
Sorry for the long comment, but here are some more thoughts: In message_traits.h there is the template definition for getting the value of the messages header stamp (changed in #72), but the SFINAE that's there as fallback for messages without header would return time with a different
The unit tests in "time_sequencer_unittest.cpp" aren't affected by this problem as the test defines a custom struct I'm happy to follow up on this if my descriptions aren't clear enough. Is it fine to handle these problems here or should I open a new issue for that? |
One of our CI jobs just failed because the TimeSequencer.simple unit test hung:
A passing run in our CI takes about half a second to run, so this isn't a case of the test just taking a little longer than normal.
It's almost certainly getting stuck in
rclcpp::spin_some(node)
on line 97 or a few lines later. The queue of things to handle is either building up faster than spin_some can process, or some work item in the queue is adding a work item to the queue so spin_some never finishes.I need to dive into this a little more to see what's being tested, but maybe we could spin until something specific happens, or spin until future complete? If someone reads this and has a suggestion, please chime in
The text was updated successfully, but these errors were encountered: