-
Notifications
You must be signed in to change notification settings - Fork 96
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(nemesis-target-pool): set method attribute for target pool #9517
Conversation
ca7682d
to
f0917ff
Compare
see #9502 you still have this in you PR inside
|
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.
it's not enough just to move the assigning to _target_node_pool
form the decorators
_target_node_pool
shouldn't hold a list of nodes ontop of the nemesis class.
set_target node should alway look at cluster current nodes lists, and not cache anything in that regards
@fruch , i took a look into your PR. It also will have same problem even with node type, because the disrupt_wrapper will always use the data_nodes, and target node has been chosen before, the node_pool_type would changed by decorator |
Decorator `disrupt_method_wrapper` rewrites target node pool and always set Nemesis._target_node_pool as data_nodes. This cause that target node is chosen from cluster.data_nodes always. This happemed because we have decorators chain: disrupt_method_wrapper -> target_(data/zero/all)_nodes -> disrupt_* Target node is chosen in `disrupt_method_wrapper`, and any changes in target_*_pool does not affect of target node if it is run in complex nemesis as SisyphusMonkey and also has affect in parallel nemesis run Set method attribute disrupt_*.target_pool for later use in decorator `disrupt_method_wrapper`, allows correctly set target pool for disrupt nemesis Using solution from PR: scylladb#9502 to store pool type instead of cache of filtered nodes
f0917ff
to
7c286fb
Compare
@fruch , can you take a look. I use your solution related to storing pool type |
Jobs with this fixed passed (main funcitonality) error messages not related to fix: |
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.
LGTM
Decorator
disrupt_method_wrapper
rewrites target node pool and always set Nemesis.target_node_pool as data_nodes. This cause that target node is chosen from cluster.data_nodes always. This happemed because we have decorators chain:disrupt_method_wrapper -> target(data/zero/all)nodes -> disrupt*
Target node is chosen in
disrupt_method_wrapper
, and any changes in target_*_pool does not affect of target node if it is run in complex nemesis as SisyphusMonkey and also has affect in parallel nemesis runSet method attribute disrupt_*.target_pool for later use in decorator
disrupt_method_wrapper
, allows correctly set target pool for disrupt nemesisFixes: #9448
Used solution from pr: #9502
Testing
PR pre-checks (self review)
backport
labelsReminders
sdcm/sct_config.py
)unit-test/
folder)