IGNITE-27833 [ducktests] Add Multi-DC Integration Test for Cross-DC Network Partition Resilience#12740
IGNITE-27833 [ducktests] Add Multi-DC Integration Test for Cross-DC Network Partition Resilience#12740maksaska wants to merge 46 commits into
Conversation
95f16f1 to
2016503
Compare
anton-vinogradov
left a comment
There was a problem hiding this comment.
Reviewed the whole PR. The netem/iptables layering (tcset baseline + per-pair DROP chains, so healing is a pure chain flush) is nicely designed, and the tests read well. A few findings below, most with one-line fixes; the two control_utility.py ones and the connect_timeout default affect shared infrastructure beyond MDC.
Nits not tied to a diff line:
modules/ducktests/tests/tox.inienvliststill containspy38, while the workflow dropped it andtcconfig==0.30.1requires Python >= 3.9 — a localtoxrun will fail on the py38 env. Worth removing it there too.thin_client_test.pyreserves@cluster(num_nodes=8)but allocates 7 (2+2 servers, 1 runner, 2 thin clients).
Replace the always-negated expectAdmissible and tolerateErrors profile options with inadmissible and continueOnError, and reorder the exception handling into a negation-free error-policy ladder (inadmissible -> stopOnError -> continueOnError -> fail). Behavior and precedence are unchanged.
anton-vinogradov
left a comment
There was a problem hiding this comment.
Round 2: verified all previous threads against the new head - every one of them is properly fixed (including the tcconfig==0.29.1 route: it requires only Python >=3.7, so the py38 env is consistent again; also compiled with -Pducktests and the strict -Pcheckstyle profile locally - clean).
The final pass still found a few things, two of them merge-blocking:
- blocker: the "codestyle" commit accidentally commented out the Ignite/Zookeeper/Kafka installs in the ducktests Docker image;
- blocker: the new
ClusterState.coordinatorfield breaks positional unpacking ofcluster_state()in existing tests; - one correction to my own round-1 comment about
--user-attributesordering (it is client-sideHashMaporder, notTreeMaporder - details inline, sorry for the detour); - plus a handful of test-strength/robustness notes and two doc nits.
Details inline.
Thank you for submitting the pull request to the Apache Ignite.
In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:
The Contribution Checklist
The description explains WHAT and WHY was made instead of HOW.
The following pattern must be used:
IGNITE-XXXX Change summarywhereXXXX- number of JIRA issue.(see the Maintainers list)
the
green visaattached to the JIRA ticket (see TC.Bot: Check PR)Notes
If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com #ignite channel.