DataStax Help Center

"Unable to find property 'threshold_ms'" seen when running upgradesstables

Summary

When running upgradesstables, an error can occur if an old dse.yaml is in the path where the tool is run from, or if the old version of the file is used. This note documents the particular error seen when this occurs

Symptoms

This is an example of the error that may be seen when running upgradesstables

$ nodetool upgradesstables 
    error: Unable to find property 'threshold_ms' on class: com.datastax.bdp.config.CqlSlowLogOptions 
    -- StackTrace -- 
    org.yaml.snakeyaml.error.YAMLException: Unable to find property 'threshold_ms' on class: com.datastax.bdp.config.CqlSlowLogOptions 
    at com.datastax.bdp.config.DseYamlPropertyUtils.getProperty(DseYamlPropertyUtils.java:58) 
    at org.yaml.snakeyaml.introspector.PropertyUtils.getProperty(PropertyUtils.java:121) 
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.getProperty(Constructor.java:308) 
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:240) 
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:189) 
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) 
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:296) 
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:189) 
    at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:331) 
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) 
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:141) 
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:127) 
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) 
    at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:475) 
    at com.datastax.bdp.config.DseConfigYamlLoader.<clinit>(DseConfigYamlLoader.java:57) 
    at com.datastax.bdp.cassandra.auth.DseRoleManager.initGroupCache(DseRoleManager.java:327) 
    at com.datastax.bdp.cassandra.auth.DseRoleManager.<clinit>(DseRoleManager.java:63) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at org.apache.cassandra.utils.FBUtilities.classForName(FBUtilities.java:476) 
    at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:513) 
    at org.apache.cassandra.utils.FBUtilities.newRoleManager(FBUtilities.java:463) 
    at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:336) 
    at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:119) 
    at org.apache.cassandra.tools.NodeProbe.checkJobs(NodeProbe.java:262) 
    at org.apache.cassandra.tools.NodeProbe.upgradeSSTables(NodeProbe.java:298) 
    at org.apache.cassandra.tools.nodetool.UpgradeSSTable.execute(UpgradeSSTable.java:54) 
    at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:247) 
    at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:161)

Cause

A previous version’s dse.yaml was in the path of where the tool was run from. The threshold_ms property was dropped from the options for the CQL slow log and instead used for the Solr slow logs.

 

Any missing property (perhaps added as well) will create a similar error.

Solution

As per the documentation:

http://docs.datastax.com/en/latest-upgrade/upgrade/datastax_enterprise/upgdDSE50.html

Back up the configuration files you use to a folder that is not in the directory where you normally run commands.
The configuration files are overwritten with default values during installation of the new version.

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk