-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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 tablegc flaky test #10230
fix tablegc flaky test #10230
Conversation
Signed-off-by: Shlomi Noach <[email protected]>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Bug fixes
Non-trivial changes
New/Existing features
Backward compatibility
|
Bummer! After several manual re-runs, I still see flakiness:
converting to draft while checking it. |
Signed-off-by: Shlomi Noach <[email protected]>
…unt where table exists, validate drop table Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
OK this has been successful for multiple successive runs. Maybe solved. Better than before, for sure! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! ❤️ This is another one that was on my flakes list. 🙂
I had an overall nit about using variables for the time.Sleep()
invocations but I will defer to you on whether it's really warranted.
@@ -258,19 +299,11 @@ func TestEvac(t *testing.T) { | |||
} | |||
|
|||
time.Sleep(10 * time.Second) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit, but can we make this a variable ~ createTableTimeStampOffsetSecs
and then use that everywhere we are doing time.Sleep
in relation to that variable? We can then use this throughout:
time.Sleep(createTableTimeStampOffsetSecs * time.Second)
time.Sleep((createTableTimeStampOffsetSecs / 2) * time.Second)
time.Sleep((createTableTimeStampOffsetSecs * 3) * time.Second)
...
This way it's easier to tie all the timing behavior together and adjust it holistically as needed by increasing that one variable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All time values now parameterized
@@ -326,21 +351,7 @@ func TestPurge(t *testing.T) { | |||
} | |||
|
|||
time.Sleep(15 * time.Second) // purgeReentranceInterval |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar nit here. We could have a variable called purgeReentranceInterval
so that those vars are all together and it's clear/easy to adjust the waits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Signed-off-by: Shlomi Noach <[email protected]>
aaaand, I've made things worse. |
Signed-off-by: Shlomi Noach <[email protected]>
OK, remade things better |
Signed-off-by: Shlomi Noach <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Description
Fixes #7984
Hopefully this finally fixes the flaky
TestPurge
test in CI. The failure almost never reproduces locally, but does rarely. anyway, the solution is based on a bit of extended timeout, and also saves runtime where possible.What I'm going to do is re-run this particular CI test (
tabletmanager_tablegc
) a few times, manually, even if successful..Related Issue(s)
#7984
Checklist