You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Erick Ramirez (Jira)" <ji...@apache.org> on 2020/09/23 10:41:00 UTC

[jira] [Updated] (CASSANDRA-16008) 2.2.17 fails to start up with ExceptionInInitializerError

     [ https://issues.apache.org/jira/browse/CASSANDRA-16008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Erick Ramirez updated CASSANDRA-16008:
--------------------------------------
     Bug Category: Parent values: Correctness(12982)
       Complexity: Low Hanging Fruit
      Component/s: Local/Config
    Discovered By: User Report
    Fix Version/s: 2.2.18
         Severity: Normal
         Assignee: Erick Ramirez
           Status: Open  (was: Triage Needed)

> 2.2.17 fails to start up with ExceptionInInitializerError
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-16008
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16008
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/Config
>            Reporter: Tianon Gravi
>            Assignee: Erick Ramirez
>            Priority: Normal
>             Fix For: 2.2.18
>
>
> After the upgrade to 2.2.17, Cassandra fails to start with the following error:
> {noformat}
> INFO  20:28:57 JVM Arguments: [-Dcom.sun.management.jmxremote.port=7199, -Dcom.sun.management.jmxremote.ssl=false, -Dcom.sun.management.jmxremote.authenticate=false, -ea, -javaagent:/opt/cassandra/lib/jamm-0.3.0.jar, -XX:+CMSClassUnloadingEnabled, -XX:+UseThreadPriorities, -XX:ThreadPriorityPolicy=42, -Xms128m, -Xmx128m, -Xmn32m, -XX:+HeapDumpOnOutOfMemoryError, -Xss256k, -XX:StringTableSize=1000003, -XX:+UseParNewGC, -XX:+UseConcMarkSweepGC, -XX:+CMSParallelRemarkEnabled, -XX:SurvivorRatio=8, -XX:MaxTenuringThreshold=1, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+UseTLAB, -XX:+PerfDisableSharedMem, -XX:CompileCommandFile=/etc/cassandra/hotspot_compiler, -XX:CMSWaitDuration=10000, -XX:+CMSParallelInitialMarkEnabled, -XX:+CMSEdenChunksRecordAlways, -XX:CMSWaitDuration=10000, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintHeapAtGC, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -XX:+PrintPromotionFailure, -Xloggc:/opt/cassandra/logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=10, -XX:GCLogFileSize=10M, -Djava.net.preferIPv4Stack=true, -Dcassandra.jmx.local.port=7199, -XX:+DisableExplicitGC, -Djava.library.path=/opt/cassandra/lib/sigar-bin, -Dcassandra.libjemalloc=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1, -XX:OnOutOfMemoryError=kill -9 %p, -Dlogback.configurationFile=logback.xml, -Dcassandra.logdir=/opt/cassandra/logs, -Dcassandra.storagedir=/opt/cassandra/data, -Dcassandra-foreground=yes]
> WARN  20:28:57 Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or run Cassandra as root.
> INFO  20:28:57 jemalloc seems to be preloaded from /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
> INFO  20:28:57 JMX is enabled to receive remote connections on port: 7199
> WARN  20:28:57 OpenJDK is not recommended. Please upgrade to the newest Oracle Java release
> INFO  20:28:57 Initializing SIGAR library
> INFO  20:28:57 Checked OS settings and found them configured for optimal performance.
> WARN  20:28:57 Directory /opt/cassandra/data/commitlog doesn't exist
> WARN  20:28:57 Directory /opt/cassandra/data/saved_caches doesn't exist
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: null
> java.lang.ExceptionInInitializerError
> 	at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:709)
> 	at org.apache.cassandra.service.StartupChecks$9.execute(StartupChecks.java:351)
> 	at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:109)
> 	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188)
> 	at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:607)
> 	at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:717)
> Caused by: java.lang.IllegalArgumentException: Bad configuration; unable to start server: At least one DataFileDirectory must be specified
> 	at org.apache.cassandra.config.DatabaseDescriptor.createAllDirectories(DatabaseDescriptor.java:846)
> 	at org.apache.cassandra.db.Keyspace.<clinit>(Keyspace.java:66)
> 	... 6 more
> ERROR 20:28:58 Exception encountered during startup
> java.lang.ExceptionInInitializerError: null
> 	at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:709) ~[apache-cassandra-2.2.17.jar:2.2.17]
> 	at org.apache.cassandra.service.StartupChecks$9.execute(StartupChecks.java:351) ~[apache-cassandra-2.2.17.jar:2.2.17]
> 	at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:109) ~[apache-cassandra-2.2.17.jar:2.2.17]
> 	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188) [apache-cassandra-2.2.17.jar:2.2.17]
> 	at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:607) [apache-cassandra-2.2.17.jar:2.2.17]
> 	at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:717) [apache-cassandra-2.2.17.jar:2.2.17]
> Caused by: java.lang.IllegalArgumentException: Bad configuration; unable to start server: At least one DataFileDirectory must be specified
> 	at org.apache.cassandra.config.DatabaseDescriptor.createAllDirectories(DatabaseDescriptor.java:846) ~[apache-cassandra-2.2.17.jar:2.2.17]
> 	at org.apache.cassandra.db.Keyspace.<clinit>(Keyspace.java:66) ~[apache-cassandra-2.2.17.jar:2.2.17]
> 	... 6 common frames omitted
> 	at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:109)
> 	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188)
> 	at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:607)
> 	at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:717)
> Caused by: java.lang.IllegalArgumentException: Bad configuration; unable to start server: At least one DataFileDirectory must be specified
> 	at org.apache.cassandra.config.DatabaseDescriptor.createAllDirectories(DatabaseDescriptor.java:846)
> 	at org.apache.cassandra.db.Keyspace.<clinit>(Keyspace.java:66)
> 	... 6 more
> {noformat}
> I've traced this down to what I believe is the issue in [https://github.com/apache/cassandra/commit/257fb0377343cbfdb58327da17f31d4eaed940f5], specifically [https://github.com/apache/cassandra/commit/257fb0377343cbfdb58327da17f31d4eaed940f5#r40944000] – the addition of an empty value for {{data_file_directories}} needs to be accompanied with a change to {{DatabaseDescriptor.java}} to handle an empty array the same way as the previous nil value was (and seed the value of {{cassandra.storagedir}} into that empty array), as was done in [https://github.com/apache/cassandra/commit/b09e60f72bb2f37235d9e9190c25db36371b3c18#diff-b66584c9ce7b64019b5db5a531deeda1] (which I believe is the origin of this change).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org