Skip to content

fix(LoaderUtilsMixin): table_enabled was allways True as this feature is allways enabled #9993

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

Merged
merged 1 commit into from
Feb 17, 2025

Conversation

jsmolar
Copy link
Contributor

@jsmolar jsmolar commented Feb 4, 2025

Enabling/disabling tablets was changed. Now we have to check scylla yaml or keystore schema.
For more info see

Testing

PR pre-checks (self review)

  • I added the relevant backport labels
  • I didn't leave commented-out/debugging code

Reminders

  • Add New configuration option and document them (in sdcm/sct_config.py)
  • Add unit tests to cover my changes (under unit-test/ folder)
  • Update the Readme/doc folder relevant to this change (if needed)

@jsmolar jsmolar force-pushed the ics_fix branch 3 times, most recently from 85b7e9a to 4b4a5d5 Compare February 6, 2025 08:39
@jsmolar jsmolar force-pushed the ics_fix branch 6 times, most recently from 9861338 to dd074e0 Compare February 7, 2025 06:58
@pehala pehala requested a review from soyacz February 7, 2025 14:54
pehala
pehala previously approved these changes Feb 7, 2025
Lakshmipathi
Lakshmipathi previously approved these changes Feb 8, 2025
@cezarmoise
Copy link
Contributor

Is the case where tablets are enabled globally but disabled on the test keyspace something to be considered?

@jsmolar
Copy link
Contributor Author

jsmolar commented Feb 10, 2025

Is the case where tablets are enabled globally but disabled on the test keyspace something to be considered?

Afaik, tablets are enabled by default from 6.2 (or so). When enable_tablets is false for append_scylla_yaml, they are disabled for the specific keyspace: CREATE KEYSPACE keyspace1 WITH replication = {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'us-east': '3'} AND durable_writes = true AND tablets = {'enabled': false};
This behavior in our tests is inconsistent across the test suite, but I belive, it works as described.

@soyacz
Copy link
Contributor

soyacz commented Feb 12, 2025

@jsmolar there are plenty of unrelated formatting changes which blur the review process. Please try not doing that if not necessary.

… is enabled

Enabling/disabling tablets was changed. Now we have to check scylla yaml
or keystore schema.
For more info see
- scylladb/scylladb#21451
- scylladb/scylladb#21614
Copy link
Contributor

@soyacz soyacz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after reading more details in referenced PR's my understanding is:

  1. we still have to query if tablets are enabled for 6.1/2 and 2024.1/2 - we didn't backport config param meaning there. I don't see the point of changing current implementation regards that.
  2. enable_tablets config meaning changed only for dev/2025.1 - for this we should have a method/function to determine if tablets are enabled by default for new keyspaces (if we need it anywhere). So we should have new function: is_tablet_default.
  3. for versions >= 2025.1 is_tablets_feature_enabled can just return True and skip verifying features.

@pehala
Copy link
Contributor

pehala commented Feb 14, 2025

fter reading more details in referenced PR's my understanding is:

1. we still have to query if tablets are enabled for 6.1/2 and 2024.1/2 - we didn't backport config param meaning there. I don't see the point of changing current implementation regards that.

2. `enable_tablets` config meaning changed only for dev/2025.1 - for this we should have a method/function to determine if tablets are enabled by default for new keyspaces (if we need it anywhere). So we should have new function: `is_tablet_default`.

3. for versions >= 2025.1 `is_tablets_feature_enabled` can just return `True` and skip verifying features.

@soyacz I agree with all those suggestions, but we need a hotfix first for testing 2025.1, as currently some nemesis are skipped even on Vnode runs because this check is now outdated. So I propose merging this (If it works ofc) and then immediately start working on a much better and comprehensive solution.

Copy link
Contributor

@soyacz soyacz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@soyacz I agree with all those suggestions, but we need a hotfix first for testing 2025.1, as currently some nemesis are skipped even on Vnode runs because this check is now outdated. So I propose merging this (If it works ofc) and then immediately start working on a much better and comprehensive solution.

Ok.

@pehala please create issue that will take above considerations.
Actually, problem is deeper if we want to test both vnodes and tablets in one test. Basically, we should have 3 methods: is_tablets_feature_enabled (soon to be obsolete), is_tablets_default and is_tablets_used (still test may use tablets despite of tablets default set to false).

@jsmolar please let us know if the most recent push was tested

@Lakshmipathi
Copy link
Contributor

but we need a hotfix first for testing 2025.1, as currently some nemesis are skipped even on Vnode runs because this check is now outdated.

Ok, now I understand why this run fails https://jenkins.scylladb.com/job/scylla-staging/job/LakshmipathiGanapathi/job/longevity-counters-3h-test/14/console with message Tablets feature is enabled, skipping counter stress even though tablets are not enabled.

Copy link
Contributor

@fruch fruch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@soyacz
Copy link
Contributor

soyacz commented Feb 21, 2025

@pehala please create issue that will take above considerations.
Actually, problem is deeper if we want to test both vnodes and tablets in one test. Basically, we should have 3 methods: is_tablets_feature_enabled (soon to be obsolete), is_tablets_default and is_tablets_used (still test may use tablets despite of tablets default set to false).

@pehala @jsmolar ^^ so we don't forget

@jsmolar
Copy link
Contributor Author

jsmolar commented Feb 21, 2025

@pehala please create issue that will take above considerations.
Actually, problem is deeper if we want to test both vnodes and tablets in one test. Basically, we should have 3 methods: is_tablets_feature_enabled (soon to be obsolete), is_tablets_default and is_tablets_used (still test may use tablets despite of tablets default set to false).

@pehala @jsmolar ^^ so we don't forget

I created issue for this: #10168

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants