[jira] [Comment Edited] (CASSANDRA-16002) jvm upgrade dtests fail on java 11 caused by bad initialization order of DatabaseDescriptor and FileUtils
[ https://issues.apache.org/jira/browse/CASSANDRA-16002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17168291#comment-17168291 ] David Capwell edited comment on CASSANDRA-16002 at 7/30/20, 11:19 PM: -- To help with review, the following commands can be run locally {code} setjdk 8 unset CASSANDRA_USE_JDK11 for v in 2.2 3.0 3.11 trunk; do cd ../cassandra-$v ant realclean ant jar dtest-jar ant generate-idea-files done echo ../cassandra-{3.0,3.11,trunk}/build/ | xargs -n1 cp -v ../cassandra-2.2/build/dtest-2.2*.jar echo ../cassandra-{3.11,trunk}/build/ | xargs -n1 cp -v ../cassandra-3.0/build/dtest-3.0*.jar echo ../cassandra-trunk/build/ | xargs -n1 cp -v ../cassandra-3.11/build/dtest-3.11*.jar cd ../cassandra-trunk setjdk 11 CASSANDRA_USE_JDK11=true ant testclasslist -Dtest.classlistfile=<( echo "org/apache/cassandra/distributed/upgrade/UpgradeTest.java" ) -Dtest.classlistprefix=distributed {code} was (Author: dcapwell): To help with review, the following commands can be run locally {code} setjdk 8 unset CASSANDRA_USE_JDK11 for v in 2.2 3.0 3.11 trunk; do cd ../cassandra-$v ant realclean ant jar dtest-jar ant generate-idea-files done echo ../cassandra-{3.0,3.11,trunk}/build/ | xargs -n1 cp -v ../cassandra-2.2/build/dtest-2.2*.jar echo ../cassandra-{3.11,trunk}/build/ | xargs -n1 cp -v ../cassandra-3.0/build/dtest-3.0*.jar echo ../cassandra-trunk/build/ | xargs -n1 cp -v ../cassandra-3.11/build/dtest-3.11*.jar cd ../cassandra-trunk setjdk 11 ant testclasslist -Dtest.classlistfile=<( echo "org/apache/cassandra/distributed/upgrade/UpgradeTest.java" ) -Dtest.classlistprefix=distributed {code} > jvm upgrade dtests fail on java 11 caused by bad initialization order of > DatabaseDescriptor and FileUtils > - > > Key: CASSANDRA-16002 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16002 > Project: Cassandra > Issue Type: Bug > Components: Test/dtest >Reporter: David Capwell >Assignee: David Capwell >Priority: Normal > Fix For: 3.0.x, 3.11.x, 4.0-beta > > > In FileUtils we check to see if we have access to some classes (specifically > to set org.apache.cassandra.io.util.FileUtils#isCleanerAvailable), which can > fail in java 11. This is fine with CassandraDaemon as it will just log the > failure, but in in-jvm dtests this can fail to startup an instance with the > following > {code} > java.lang.RuntimeException: java.lang.RuntimeException: > java.lang.AssertionError: network topology must be assigned before using > snitch > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.waitOn(IsolatedExecutor.java:209) > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.lambda$sync$7(IsolatedExecutor.java:112) > at > org.apache.cassandra.distributed.impl.Instance.startup(Instance.java:592) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:209) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:200) > at > org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:179) > at > org.apache.cassandra.distributed.upgrade.UpgradeTest.upgradeTest(UpgradeTest.java:50) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > Caused by: java.lang.RuntimeException: java.lang.AssertionError: network > topology must be assigned before using snitch > at > org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:590) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: java.lang.AssertionError: network topology must be assigned before > using snitch > at > org.apache.cassandra.distributed.impl.DistributedTestSnitch.getDatacenter(DistributedTestSnitch.java:90) > at >
[jira] [Comment Edited] (CASSANDRA-16002) jvm upgrade dtests fail on java 11 caused by bad initialization order of DatabaseDescriptor and FileUtils
[ https://issues.apache.org/jira/browse/CASSANDRA-16002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17168182#comment-17168182 ] Jordan West edited comment on CASSANDRA-16002 at 7/30/20, 7:51 PM: --- +1 LGTM. For 3.0/3.11 moving the logging line above the stability inspector call makes sense because the JVM can be killed before reaching the log line. For trunk, logging the exceptions for additional information also makes sense. So does registering the error handler after initializing {{DatabaseDescriptor}} in all cases. was (Author: jrwest): +1 LGTM. For 3.0/3.11 moving the logging line above the stability inspector call makes sense because the JVM can be killed before reaching the log line. For trunk, logging the exceptions for additional information also makes sense. > jvm upgrade dtests fail on java 11 caused by bad initialization order of > DatabaseDescriptor and FileUtils > - > > Key: CASSANDRA-16002 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16002 > Project: Cassandra > Issue Type: Bug > Components: Test/dtest >Reporter: David Capwell >Assignee: David Capwell >Priority: Normal > Fix For: 3.0.x, 3.11.x, 4.0-beta > > > In FileUtils we check to see if we have access to some classes (specifically > to set org.apache.cassandra.io.util.FileUtils#isCleanerAvailable), which can > fail in java 11. This is fine with CassandraDaemon as it will just log the > failure, but in in-jvm dtests this can fail to startup an instance with the > following > {code} > java.lang.RuntimeException: java.lang.RuntimeException: > java.lang.AssertionError: network topology must be assigned before using > snitch > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.waitOn(IsolatedExecutor.java:209) > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.lambda$sync$7(IsolatedExecutor.java:112) > at > org.apache.cassandra.distributed.impl.Instance.startup(Instance.java:592) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:209) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:200) > at > org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:179) > at > org.apache.cassandra.distributed.upgrade.UpgradeTest.upgradeTest(UpgradeTest.java:50) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > Caused by: java.lang.RuntimeException: java.lang.AssertionError: network > topology must be assigned before using snitch > at > org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:590) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: java.lang.AssertionError: network topology must be assigned before > using snitch > at > org.apache.cassandra.distributed.impl.DistributedTestSnitch.getDatacenter(DistributedTestSnitch.java:90) > at > org.apache.cassandra.distributed.impl.DistributedTestSnitch.getDatacenter(DistributedTestSnitch.java:85) > at > org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:118) > at > org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:488) > at > org.apache.cassandra.config.DatabaseDescriptor.(DatabaseDescriptor.java:137) > at > org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable(JVMStabilityInspector.java:102) > at > org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable(JVMStabilityInspector.java:60) > at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:78) > at > org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) > {code} > The exception isn’t clear, but what is happening is the following > {code} > static > { > boolean canClean = false; > try > { > ByteBuffer
[jira] [Comment Edited] (CASSANDRA-16002) jvm upgrade dtests fail on java 11 caused by bad initialization order of DatabaseDescriptor and FileUtils
[ https://issues.apache.org/jira/browse/CASSANDRA-16002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17168142#comment-17168142 ] David Capwell edited comment on CASSANDRA-16002 at 7/30/20, 6:55 PM: - The underline exception is {code} ERROR [node1_isolatedExecutor:1] node1 2020-07-30 11:44:38,115 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be removed promptly. Consider using an Oracle JVM or using standard disk access mode java.lang.NoSuchMethodError: sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner; at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:73) ~[dtest-3.0.22.jar:na] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) ~[dtest-3.0.22.jar:na] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) ~[dtest-3.0.22.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] {code} As of java 11, the cleaner is now jdk.internal.ref.Cleaner was (Author: dcapwell): The underline exception is {code} ERROR [node1_isolatedExecutor:1] node1 2020-07-30 11:44:38,115 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be removed promptly. Consider using an Oracle JVM or using standard disk access mode java.lang.NoSuchMethodError: sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner; at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:73) ~[dtest-3.0.22.jar:na] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) ~[dtest-3.0.22.jar:na] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) ~[dtest-3.0.22.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] {code} As of java 11, the cleaner is now jdk.internal.ref.Cleaner So, in order to get the upgrade tests working again, we will need to backport CASSANDRA-9608 as well > jvm upgrade dtests fail on java 11 caused by bad initialization order of > DatabaseDescriptor and FileUtils > - > > Key: CASSANDRA-16002 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16002 > Project: Cassandra > Issue Type: Bug > Components: Test/dtest >Reporter: David Capwell >Assignee: David Capwell >Priority: Normal > Fix For: 3.0.x, 3.11.x, 4.0-beta > > > In FileUtils we check to see if we have access to some classes (specifically > to set org.apache.cassandra.io.util.FileUtils#isCleanerAvailable), which can > fail in java 11. This is fine with CassandraDaemon as it will just log the > failure, but in in-jvm dtests this can fail to startup an instance with the > following > {code} > java.lang.RuntimeException: java.lang.RuntimeException: > java.lang.AssertionError: network topology must be assigned before using > snitch > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.waitOn(IsolatedExecutor.java:209) > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.lambda$sync$7(IsolatedExecutor.java:112) > at > org.apache.cassandra.distributed.impl.Instance.startup(Instance.java:592) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:209) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:200) > at > org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:179) > at > org.apache.cassandra.distributed.upgrade.UpgradeTest.upgradeTest(UpgradeTest.java:50) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at >
[jira] [Comment Edited] (CASSANDRA-16002) jvm upgrade dtests fail on java 11 caused by bad initialization order of DatabaseDescriptor and FileUtils
[ https://issues.apache.org/jira/browse/CASSANDRA-16002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17168142#comment-17168142 ] David Capwell edited comment on CASSANDRA-16002 at 7/30/20, 6:50 PM: - The underline exception is {code} ERROR [node1_isolatedExecutor:1] node1 2020-07-30 11:44:38,115 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be removed promptly. Consider using an Oracle JVM or using standard disk access mode java.lang.NoSuchMethodError: sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner; at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:73) ~[dtest-3.0.22.jar:na] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) ~[dtest-3.0.22.jar:na] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) ~[dtest-3.0.22.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] {code} As of java 11, the cleaner is now jdk.internal.ref.Cleaner So, in order to get the upgrade tests working again, we will need to backport CASSANDRA-9608 as well was (Author: dcapwell): The underline exception is {code} ERROR [node1_isolatedExecutor:1] node1 2020-07-30 11:44:38,115 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be removed promptly. Consider using an Oracle JVM or using standard disk access mode java.lang.NoSuchMethodError: sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner; at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:73) ~[dtest-3.0.22.jar:na] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) ~[dtest-3.0.22.jar:na] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) ~[dtest-3.0.22.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] {code} As of java 11, the cleaner is now jdk.internal.ref.Cleaner > jvm upgrade dtests fail on java 11 caused by bad initialization order of > DatabaseDescriptor and FileUtils > - > > Key: CASSANDRA-16002 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16002 > Project: Cassandra > Issue Type: Bug > Components: Test/dtest >Reporter: David Capwell >Assignee: David Capwell >Priority: Normal > Fix For: 3.0.x, 3.11.x, 4.0-beta > > > In FileUtils we check to see if we have access to some classes (specifically > to set org.apache.cassandra.io.util.FileUtils#isCleanerAvailable), which can > fail in java 11. This is fine with CassandraDaemon as it will just log the > failure, but in in-jvm dtests this can fail to startup an instance with the > following > {code} > java.lang.RuntimeException: java.lang.RuntimeException: > java.lang.AssertionError: network topology must be assigned before using > snitch > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.waitOn(IsolatedExecutor.java:209) > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.lambda$sync$7(IsolatedExecutor.java:112) > at > org.apache.cassandra.distributed.impl.Instance.startup(Instance.java:592) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:209) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:200) > at > org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:179) > at > org.apache.cassandra.distributed.upgrade.UpgradeTest.upgradeTest(UpgradeTest.java:50) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at >
[jira] [Comment Edited] (CASSANDRA-16002) jvm upgrade dtests fail on java 11 caused by bad initialization order of DatabaseDescriptor and FileUtils
[ https://issues.apache.org/jira/browse/CASSANDRA-16002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17168142#comment-17168142 ] David Capwell edited comment on CASSANDRA-16002 at 7/30/20, 6:47 PM: - The underline exception is {code} ERROR [node1_isolatedExecutor:1] node1 2020-07-30 11:44:38,115 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be removed promptly. Consider using an Oracle JVM or using standard disk access mode java.lang.NoSuchMethodError: sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner; at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:73) ~[dtest-3.0.22.jar:na] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) ~[dtest-3.0.22.jar:na] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) ~[dtest-3.0.22.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] {code} As of java 11, the cleaner is now jdk.internal.ref.Cleaner was (Author: dcapwell): The underline exception is {code} ERROR [node1_isolatedExecutor:1] node1 2020-07-30 11:44:38,115 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be removed promptly. Consider using an Oracle JVM or using standard disk access mode java.lang.NoSuchMethodError: sun.nio.ch.DirectBuffer.cleaner()Lsun/misc/Cleaner; at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:73) ~[dtest-3.0.22.jar:na] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) ~[dtest-3.0.22.jar:na] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) ~[dtest-3.0.22.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] {code} > jvm upgrade dtests fail on java 11 caused by bad initialization order of > DatabaseDescriptor and FileUtils > - > > Key: CASSANDRA-16002 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16002 > Project: Cassandra > Issue Type: Bug > Components: Test/dtest >Reporter: David Capwell >Assignee: David Capwell >Priority: Normal > Fix For: 3.0.x, 3.11.x, 4.0-beta > > > In FileUtils we check to see if we have access to some classes (specifically > to set org.apache.cassandra.io.util.FileUtils#isCleanerAvailable), which can > fail in java 11. This is fine with CassandraDaemon as it will just log the > failure, but in in-jvm dtests this can fail to startup an instance with the > following > {code} > java.lang.RuntimeException: java.lang.RuntimeException: > java.lang.AssertionError: network topology must be assigned before using > snitch > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.waitOn(IsolatedExecutor.java:209) > at > org.apache.cassandra.distributed.impl.IsolatedExecutor.lambda$sync$7(IsolatedExecutor.java:112) > at > org.apache.cassandra.distributed.impl.Instance.startup(Instance.java:592) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:209) > at > org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:200) > at > org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:179) > at > org.apache.cassandra.distributed.upgrade.UpgradeTest.upgradeTest(UpgradeTest.java:50) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > Caused by: java.lang.RuntimeException: java.lang.AssertionError: network > topology must be assigned before using snitch > at >
[jira] [Comment Edited] (CASSANDRA-16002) jvm upgrade dtests fail on java 11 caused by bad initialization order of DatabaseDescriptor and FileUtils
[ https://issues.apache.org/jira/browse/CASSANDRA-16002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17168141#comment-17168141 ] David Capwell edited comment on CASSANDRA-16002 at 7/30/20, 6:45 PM: - OSS CI doesn't do upgrade tests with java 11, so need to replicate by hand {code} ant testclasslist -Dtest.classlistfile=<( echo "org/apache/cassandra/distributed/upgrade/UpgradeTest.java" ) -Dtest.classlistprefix=distributed ... [junit-timeout] Testcase: upgradeTest(org.apache.cassandra.distributed.upgrade.UpgradeTest):Caused an ERROR [junit-timeout] java.lang.RuntimeException: java.lang.AssertionError: network topology must be assigned before using snitch [junit-timeout] java.lang.RuntimeException: java.lang.RuntimeException: java.lang.AssertionError: network topology must be assigned before using snitch [junit-timeout] at org.apache.cassandra.distributed.impl.IsolatedExecutor.waitOn(IsolatedExecutor.java:209) [junit-timeout] at org.apache.cassandra.distributed.impl.IsolatedExecutor.lambda$sync$7(IsolatedExecutor.java:112) [junit-timeout] at org.apache.cassandra.distributed.impl.Instance.startup(Instance.java:592) [junit-timeout] at org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:209) [junit-timeout] at org.apache.cassandra.distributed.impl.AbstractCluster$Wrapper.startup(AbstractCluster.java:200) [junit-timeout] at org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:179) [junit-timeout] at org.apache.cassandra.distributed.upgrade.UpgradeTest.upgradeTest(UpgradeTest.java:50) [junit-timeout] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [junit-timeout] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [junit-timeout] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [junit-timeout] Caused by: java.lang.RuntimeException: java.lang.AssertionError: network topology must be assigned before using snitch [junit-timeout] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:590) [junit-timeout] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [junit-timeout] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [junit-timeout] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [junit-timeout] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [junit-timeout] at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83) [junit-timeout] at java.base/java.lang.Thread.run(Thread.java:834) [junit-timeout] Caused by: java.lang.AssertionError: network topology must be assigned before using snitch [junit-timeout] at org.apache.cassandra.distributed.impl.DistributedTestSnitch.getDatacenter(DistributedTestSnitch.java:90) [junit-timeout] at org.apache.cassandra.distributed.impl.DistributedTestSnitch.getDatacenter(DistributedTestSnitch.java:85) [junit-timeout] at org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:118) [junit-timeout] at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:488) [junit-timeout] at org.apache.cassandra.config.DatabaseDescriptor.(DatabaseDescriptor.java:137) [junit-timeout] at org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable(JVMStabilityInspector.java:102) [junit-timeout] at org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable(JVMStabilityInspector.java:60) [junit-timeout] at org.apache.cassandra.io.util.FileUtils.(FileUtils.java:79) [junit-timeout] at org.apache.cassandra.distributed.impl.Instance.lambda$startup$7(Instance.java:509) [junit-timeout] [junit-timeout] [junit-timeout] Test org.apache.cassandra.distributed.upgrade.UpgradeTest FAILED ... {code} was (Author: dcapwell): OSS CI doesn't do upgrade tests with java 11, so need to replicate by hand {code} ant testclasslist -Dtest.classlistfile=<( echo "org/apache/cassandra/distributed/upgrade/UpgradeTest.java" ) -Dtest.classlistprefix=distributed {code} > jvm upgrade dtests fail on java 11 caused by bad initialization order of > DatabaseDescriptor and FileUtils > - > > Key: CASSANDRA-16002 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16002 > Project: Cassandra > Issue Type: Bug >