[
https://issues.apache.org/jira/browse/CASSANDRA-20450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936590#comment-17936590
]
Stefan Miklosovic commented on CASSANDRA-20450:
-----------------------------------------------
[CASSANDRA-20450-5.0|https://github.com/instaclustr/cassandra/tree/CASSANDRA-20450-5.0]
{noformat}
java17_pre-commit_tests
java17_separate_tests
java11_pre-commit_tests
✓ j11_build 9m 47s
✓ j11_cqlsh_dtests_py311 9m 15s
✓ j11_cqlsh_dtests_py311_vnode 7m 55s
✓ j11_cqlsh_dtests_py38 7m 44s
✓ j11_cqlsh_dtests_py38_vnode 9m 40s
✓ j11_cqlshlib_cython_tests 10m 50s
✓ j11_cqlshlib_tests 9m 56s
✓ j11_dtests_latest 44m 30s
✓ j11_dtests_vnode 44m 5s
✓ j11_jvm_dtests 23m 15s
✓ j11_jvm_dtests_latest_vnode 22m 26s
✓ j11_simulator_dtests 6m 15s
✓ j11_unit_tests 19m 0s
✓ j11_utests_latest 19m 4s
✓ j11_utests_oa 18m 27s
✓ j11_utests_system_keyspace_directory 17m 48s
✓ j17_cqlsh_dtests_py311 6m 50s
✓ j17_cqlsh_dtests_py311_vnode 6m 35s
✓ j17_cqlsh_dtests_py38 6m 34s
✓ j17_cqlsh_dtests_py38_vnode 7m 29s
✓ j17_cqlshlib_cython_tests 7m 58s
✓ j17_cqlshlib_tests 6m 57s
✓ j17_dtests_latest 40m 11s
✓ j17_jvm_dtests 19m 53s
✓ j17_jvm_dtests_latest_vnode 18m 12s
✓ j17_unit_tests 15m 2s
✓ j17_utests_latest 17m 8s
✓ j17_utests_oa 15m 49s
✕ j11_dtests 58m 10s
refresh_test.TestRefresh test_refresh_deadlock_startup
✕ j17_dtests 36m 9s
refresh_test.TestRefresh test_refresh_deadlock_startup
✕ j17_dtests_vnode 42m 33s
bootstrap_test.TestBootstrap test_decommissioned_wiped_node_can_join
java11_separate_tests
✓ j11_build 6m 8s
✓ j11_simulator_dtests 5m 42s
{noformat}
[java17_pre-commit_tests|https://app.circleci.com/pipelines/github/instaclustr/cassandra/5643/workflows/d24b7563-1cc9-48a5-8d34-8f4b38b5343f]
[java11_separate_tests|https://app.circleci.com/pipelines/github/instaclustr/cassandra/5643/workflows/c4a200dd-7f21-471a-bd17-292de49beded]
> Fix simulator dtests after CASSANDRA-20368
> ------------------------------------------
>
> Key: CASSANDRA-20450
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20450
> Project: Apache Cassandra
> Issue Type: Bug
> Components: Legacy/Testing
> Reporter: Stefan Miklosovic
> Assignee: Stefan Miklosovic
> Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> After CASSANDRA-20368 was merged, we are getting this in simulator dtests:
> {code:java}
> Caused by: java.lang.ClassCastException: class
> org.apache.cassandra.auth.AllowAllAuthenticator cannot be cast to class
> org.apache.cassandra.auth.IAuthenticator
> (org.apache.cassandra.auth.AllowAllAuthenticator is in unnamed module of
> loader 'app'; org.apache.cassandra.auth.IAuthenticator is in unnamed module
> of loader org.apache.cassandra.distributed.shared.InstanceClassLoader
> @740abb5)
> at org.apache.cassandra.auth.AuthConfig.applyAuth(AuthConfig.java:54)
> at
> org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:284)
> at
> org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:269)
> at
> org.apache.cassandra.distributed.impl.Instance.partialStartup(Instance.java:710)
> {code}
> The problem is that after that was merged, we started to do this:
> {code:java}
> private static <T> T authInstantiate(ParameterizedClass authCls, Class<T>
> defaultCls) {
> if (authCls != null && authCls.class_name != null)
> {
> String authPackage = AuthConfig.class.getPackage().getName();
> return ParameterizedClass.newInstance(authCls, List.of("",
> authPackage));
> }
> return ParameterizedClass.newInstance(new
> ParameterizedClass(defaultCls.getName()), List.of());
> }{code}
> while previously it was this
> {code:java}
> private static <T> T authInstantiate(ParameterizedClass authCls, Class<T>
> defaultCls) {
> if (authCls != null && authCls.class_name != null)
> {
> String authPackage = AuthConfig.class.getPackage().getName();
> return ParameterizedClass.newInstance(authCls, List.of("",
> authPackage));
> }
> try
> {
> return defaultCls.newInstance();
> }
> catch (InstantiationException | IllegalAccessException e)
> {
> throw new ConfigurationException("Failed to instantiate " +
> defaultCls.getName(), e);
> }
> } {code}
> I am not completely sure what's the problem as "normally" it just works, but
> when using this code in connection with simulator, my suspicion is that it is
> using a different class loader and then creating an instance via
> ParameterizedClass.newInstance just messes it up on all the casts etc.
> The easy solution here is to just revert to "what was". The only functional
> difference here is that when a user does e.g. this in yaml
> {code}
> authorizer:
> {code}
> that means, setting authorizer literally to nothing (null), then what the
> current trunk code does (which broke the simulator tests) is that it will
> take AllowAllAuthorizer, checks what constructor it has and if it has map
> constructor it will prefer that one. If it does not have any map constructor,
> it will create an instance using no-arg constructor.
> I do not think there is any practical difference here so we might just revert
> to "what was".
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]