-
Notifications
You must be signed in to change notification settings - Fork 3.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
Remove broken memory connector test #18202
Conversation
The test attemps to ensure that queries will fail if one of the nodes holding a partition of the data goes offline. However, it's fundamentally broken, as it doesn't do anything to ensure that the node that's being shut down actually contains any data for the table in question. With the recent changes in trinodb#18005 that enable writer scaling for any connector, it is very likely that the table will land in a subset of the nodes and cause the test to fail if the "wrong" node is shut down.
This is a connector test, but the assertion on |
The memory connector declares its splits as not being accessible remotely, so the node selector fails when the node that owns the split it is offline. I agree that it could be tested properly, but this test does not do that. It does not have a mechanism to ensure the node that’s being shut down contains any data for that table. Doing multiple inserts or disabling writer scaling is not a guarantee, so the test would be inherently flaky. In fact, a test should not make any blind assumptions about where the data will land after an insert. |
I understand there is probability in play and agree it's rather unfortunate. |
A test has to:
|
That's ideal, but I would rather have a test that makes some assumptions than no test at all.
I do agree with that. I guess you're actually aware of the amount of work I personally put into coping with flaky tests. |
Agreed, but then when those assumptions become invalid the test needs to go. |
The test attemps to ensure that queries will fail if one of the nodes holding a partition of the data goes offline. However, it's fundamentally broken, as it doesn't do anything to ensure that the node that's being shut down actually contains any data for the table in question.
With the recent changes in #18005 that enable writer scaling for any connector, it
is very likely that the table will land in a subset of the nodes and cause the test to fail if the "wrong" node is shut down.
Release notes
(x) This is not user-visible or docs only and no release notes are required.