-
Notifications
You must be signed in to change notification settings - Fork 7
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
testRebotHeartbeatCount hangs indefinitely #285
Comments
Odd. This is fine on our Jenkins and I also just tested it locally. |
I suspected a race condition and ran the thread sanitizer. It does not complain, the test is running fine for me. It's been some time since this code was written. I will have to dig back in and see how it's done, and why. |
Thanks for checking. I had another look and it seems like The problem seems to be that the implementation of So, this looks less like a race condition and more like a compilation or linking problem. I had a look at the Actually, I find it strange that the linker does not complain about these duplicate symbols (neither on Linux / GCC nor on macOS / LLVM). So, I guess the difference between Linux and macOS is which of the two implementations gets choosen, but I think this really is a bug in the code because clearly there should only be a single definition. I guess that the correct fix would be to not link A less bothersome alternative might be implementing a registry mechanism for |
When running the test suite,
testRebotHeartbeatCount
hangs indefinitely. Through a debugger, I found that this happens becausetestable_rebot_sleep::waitForClientTestableMode()
(implemented intestableRebotSleep_testingImpl.h
) never returns.I think that this happens because this function waits for
RebotSleepSynchroniser::_clientHasReachedTestableMode
to be set, and the only function that does this istestable_rebot_sleep::sleep_until(…)
, which apparently is never called. At least I couldn’t find any place in the code where it is called.I noticed this problem on macOS 12.6, but from looking at the code, this should happen on all platforms.
I am not quite sure what this test is supposed to do, so I don’t no where
sleep_until(…)
should be called.@mhier, @killenb: It looks like the two of you wrote the code for this test. Maybe you can provide some inside into what is supposed to be happening there.
The text was updated successfully, but these errors were encountered: