-
Notifications
You must be signed in to change notification settings - Fork 59
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
Fix race condition for ingesting/dispensing and disable uncrustify tests by default #362
Conversation
Signed-off-by: Yadunund <yadunund@intrinsic.ai>
|
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
I am digging at this, results so far: This happens in Rolling but no on Jazzy.
I'll keep probing to see where this is done |
This reverts commit 9104594. Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Addressed in c2a519d (at least locally, hopefully CI doesn't prove me wrong). |
@luca-della-vedova I was also looking into the To be honest I find it extremely questionable that rclcpp is throwing exceptions for negative time values. Even if they want to believe that no one intends to simulate a time point before the Unix epoch, throwing an exception is an awfully blunt instrument to use for data sanitization. |
More background on the choice is here |
Ah well now |
Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai>
It turns out there's been an extremely subtle race condition bug in the ingesting and dispensing phase implementations. I think I've seen this show up as a flaky test in the past, but it used to be so extremely rare that it didn't seem worth investigating. Something about jazzy seems to be causing the race condition to be triggered much more easily. The logic is fixed now by 6d1e2c9. The key change is, we should always read ingestor/dispenser responses that match our request, no matter what time they are coming in relative to other messages. But we should still account for the timing of that response message when considering state updates. The change also now allows messages with the exact same time values to be considered as a pair, whereas previously it would have forced the phase to wait for a follow-up message. |
@mxgrey your push did the trick ✨ |
#359 is blocked by uncrustify tests and #361 attempted to lint the code to fix the style checks however it became clear that having a single codebase pass uncrustify on Jammy and Noble is not feasible. Since we want to keep CI on
main
compatible with Humble and Rolling, the best option is to disable uncrustify checks in testing.