-
Notifications
You must be signed in to change notification settings - Fork 9.7k
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
tests: add robustness test for issue 17780 #18099
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -63,6 +63,18 @@ var ( | |
{choice: Compact, weight: 5}, | ||
}, | ||
} | ||
// Issue17780EtcdPutDelete is to create high chance to have more delete | ||
// requests so that it's likely to compact that revision which is tombstone. | ||
Issue17780EtcdPutDelete = etcdTraffic{ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could this be inline if it is not used by any other tests? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You mean inline is about anonymous value during assignment? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see. How about just name it to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. +1 merging it with other traffic and incorporating it with exploratory testing. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @siyuanfoundation @serathius , I want to keep it with special name here because it's hard to reproduce it without special input or setting. If we put it into exploratory testing, existing case might have chance to reproduce it. But it's unknown for us. I was trying many combinations of traffic but it runs one day without luck. And then we introduce compact traffic, it also makes it hard to trigger issue 17780. If you have better idea, please let me know. Thanks There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would prefer to avoid having a issue specific traffic, to prevent regressions in robustness we don't need 100% reproducability, about 2-5% is ok. |
||
keyCount: 20, | ||
leaseTTL: DefaultLeaseTTL, | ||
largePutSize: 32769, | ||
requests: []choiceWeight[etcdRequestType]{ | ||
{choice: List, weight: 50}, | ||
{choice: Delete, weight: 20}, | ||
{choice: Put, weight: 10}, | ||
}, | ||
} | ||
) | ||
|
||
type etcdTraffic struct { | ||
|
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.
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.
Hi @serathius ,
CompactBeforeSetFinishedCompactPanic
is already existing atetcd/tests/robustness/failpoint/gofail.go
Line 47 in 5790774
I add new one here because this issue has a requirement that the compactor has to delete tombstone in one batch and update
UnsafeSetFinishedCompact
value in next round. IMO, it's better to have two go-failpoints here.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.
We can have both, best to even duplicate all failpoints with triggerCompact to have option with and without multiBatchCompaction.