It would be really helpful if when properties fail to parse the key and actual value are added the exception/log. Is there a log level that might add this info? (Although it should be shown at any log level.)
[2016-06-21 14:16:50,587][ERROR][bootstrap ] [s-elasticsearch-master-1] Exception
java.lang.IllegalArgumentException: value cannot be parsed to boolean [ true/1/on/yes OR false/0/off/no ]
at org.elasticsearch.common.Booleans.parseBooleanExact(Booleans.java:97)
at org.elasticsearch.cluster.node.DiscoveryNode.dataNode(DiscoveryNode.java:256)
at org.elasticsearch.cluster.node.DiscoveryNodes$Builder.build(DiscoveryNodes.java:659)
at org.elasticsearch.cluster.ClusterState$Builder.nodes(ClusterState.java:571)
at org.elasticsearch.cluster.service.InternalClusterService.doStart(InternalClusterService.java:205)
at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68)
at org.elasticsearch.node.Node.start(Node.java:279)
at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:206)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:272)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
[
I am creating the yaml from ansible. When ansible renders the elasticsearch.yml it turn python boolean into True,False. If I use |to_yaml it still uses True,False because those are valid yaml booleans.
Unfortunately, this is kind of hit-or-miss in the codebase right now. Newer parsing code generally makes an attempt to use formats like "Cannot parse value [foo], expected ["yes", "no"], got ["bar"]". But a lot of places, especially older code, doesn't follow this convention.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.