bitemyapp / bloodhound

Haskell Elasticsearch client and query DSL
bitemyapp.com
BSD 3-Clause "New" or "Revised" License
422 stars 118 forks source link

getNodesInfo failing on Elasticsearch 5.6.3 #237

Closed bitemyapp closed 6 years ago

bitemyapp commented 6 years ago

Fails to parse the json below.

{
  "_nodes": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "cluster_name": "elasticsearch",
  "nodes": {
    "jei7P8l5R46MZ5uiyNQ_zQ": {
      "name": "jei7P8l",
      "transport_address": "127.0.0.1:9300",
      "host": "127.0.0.1",
      "ip": "127.0.0.1",
      "version": "5.6.3",
      "build_hash": "1a2f265",
      "total_indexing_buffer": 207775334,
      "roles": [
        "master",
        "data",
        "ingest"
      ],
      "settings": {
        "client": {
          "type": "node"
        },
        "cluster": {
          "name": "elasticsearch"
        },
        "http": {
          "type": {
            "default": "netty4"
          }
        },
        "node": {
          "name": "jei7P8l"
        },
        "path": {
          "logs": "/Users/callen/work/elasticsearch/elasticsearch-5.6.3/logs",
          "home": "/Users/callen/work/elasticsearch/elasticsearch-5.6.3"
        },
        "transport": {
          "type": {
            "default": "netty4"
          }
        }
      },
      "os": {
        "refresh_interval_in_millis": 1000,
        "name": "Mac OS X",
        "arch": "x86_64",
        "version": "10.13.4",
        "available_processors": 8,
        "allocated_processors": 8
      },
      "process": {
        "refresh_interval_in_millis": 1000,
        "id": 79963,
        "mlockall": false
      },
      "jvm": {
        "pid": 79963,
        "version": "9.0.4",
        "vm_name": "Java HotSpot(TM) 64-Bit Server VM",
        "vm_version": "9.0.4+11",
        "vm_vendor": "Oracle Corporation",
        "start_time_in_millis": 1525548096016,
        "mem": {
          "heap_init_in_bytes": 2147483648,
          "heap_max_in_bytes": 2077753344,
          "non_heap_init_in_bytes": 7667712,
          "non_heap_max_in_bytes": 0,
          "direct_max_in_bytes": 0
        },
        "gc_collectors": [
          "ParNew",
          "ConcurrentMarkSweep"
        ],
        "memory_pools": [
          "CodeHeap 'non-nmethods'",
          "Metaspace",
          "CodeHeap 'profiled nmethods'",
          "Compressed Class Space",
          "Par Eden Space",
          "Par Survivor Space",
          "CodeHeap 'non-profiled nmethods'",
          "CMS Old Gen"
        ],
        "using_compressed_ordinary_object_pointers": "true",
        "input_arguments": [
          "-Xms2g",
          "-Xmx2g",
          "-XX:+UseConcMarkSweepGC",
          "-XX:CMSInitiatingOccupancyFraction=75",
          "-XX:+UseCMSInitiatingOccupancyOnly",
          "-XX:+AlwaysPreTouch",
          "-Xss1m",
          "-Djava.awt.headless=true",
          "-Dfile.encoding=UTF-8",
          "-Djna.nosys=true",
          "-Djdk.io.permissionsUseCanonicalPath=true",
          "-Dio.netty.noUnsafe=true",
          "-Dio.netty.noKeySetOptimization=true",
          "-Dio.netty.recycler.maxCapacityPerThread=0",
          "-Dlog4j.shutdownHookEnabled=false",
          "-Dlog4j2.disable.jmx=true",
          "-Dlog4j.skipJansi=true",
          "-XX:+HeapDumpOnOutOfMemoryError",
          "-Des.path.home=/Users/callen/work/elasticsearch/elasticsearch-5.6.3"
        ]
      },
      "thread_pool": {
        "force_merge": {
          "type": "fixed",
          "min": 1,
          "max": 1,
          "queue_size": -1
        },
        "fetch_shard_started": {
          "type": "scaling",
          "min": 1,
          "max": 16,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "listener": {
          "type": "fixed",
          "min": 4,
          "max": 4,
          "queue_size": -1
        },
        "index": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": 200
        },
        "refresh": {
          "type": "scaling",
          "min": 1,
          "max": 4,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "generic": {
          "type": "scaling",
          "min": 4,
          "max": 128,
          "keep_alive": "30s",
          "queue_size": -1
        },
        "warmer": {
          "type": "scaling",
          "min": 1,
          "max": 4,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "search": {
          "type": "fixed",
          "min": 13,
          "max": 13,
          "queue_size": 1000
        },
        "flush": {
          "type": "scaling",
          "min": 1,
          "max": 4,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "fetch_shard_store": {
          "type": "scaling",
          "min": 1,
          "max": 16,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "management": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "get": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": 1000
        },
        "bulk": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": 200
        },
        "snapshot": {
          "type": "scaling",
          "min": 1,
          "max": 4,
          "keep_alive": "5m",
          "queue_size": -1
        }
      },
      "transport": {
        "bound_address": [
          "[fe80::1]:9300",
          "[::1]:9300",
          "127.0.0.1:9300"
        ],
        "publish_address": "127.0.0.1:9300",
        "profiles": {}
      },
      "http": {
        "bound_address": [
          "[fe80::1]:9200",
          "[::1]:9200",
          "127.0.0.1:9200"
        ],
        "publish_address": "127.0.0.1:9200",
        "max_content_length_in_bytes": 104857600
      },
      "plugins": [],
      "modules": [
        {
          "name": "aggs-matrix-stats",
          "version": "5.6.3",
          "description": "Adds aggregations whose input are a list of numeric fields and output includes a matrix.",
          "classname": "org.elasticsearch.search.aggregations.matrix.MatrixAggregationPlugin",
          "has_native_controller": false
        },
        {
          "name": "ingest-common",
          "version": "5.6.3",
          "description": "Module for ingest processors that do not require additional security permissions or have large dependencies and resources",
          "classname": "org.elasticsearch.ingest.common.IngestCommonPlugin",
          "has_native_controller": false
        },
        {
          "name": "lang-expression",
          "version": "5.6.3",
          "description": "Lucene expressions integration for Elasticsearch",
          "classname": "org.elasticsearch.script.expression.ExpressionPlugin",
          "has_native_controller": false
        },
        {
          "name": "lang-groovy",
          "version": "5.6.3",
          "description": "Groovy scripting integration for Elasticsearch",
          "classname": "org.elasticsearch.script.groovy.GroovyPlugin",
          "has_native_controller": false
        },
        {
          "name": "lang-mustache",
          "version": "5.6.3",
          "description": "Mustache scripting integration for Elasticsearch",
          "classname": "org.elasticsearch.script.mustache.MustachePlugin",
          "has_native_controller": false
        },
        {
          "name": "lang-painless",
          "version": "5.6.3",
          "description": "An easy, safe and fast scripting language for Elasticsearch",
          "classname": "org.elasticsearch.painless.PainlessPlugin",
          "has_native_controller": false
        },
        {
          "name": "parent-join",
          "version": "5.6.3",
          "description": "This module adds the support parent-child queries and aggregations",
          "classname": "org.elasticsearch.join.ParentJoinPlugin",
          "has_native_controller": false
        },
        {
          "name": "percolator",
          "version": "5.6.3",
          "description": "Percolator module adds capability to index queries and query these queries by specifying documents",
          "classname": "org.elasticsearch.percolator.PercolatorPlugin",
          "has_native_controller": false
        },
        {
          "name": "reindex",
          "version": "5.6.3",
          "description": "The Reindex module adds APIs to reindex from one index to another or update documents in place.",
          "classname": "org.elasticsearch.index.reindex.ReindexPlugin",
          "has_native_controller": false
        },
        {
          "name": "transport-netty3",
          "version": "5.6.3",
          "description": "Netty 3 based transport implementation",
          "classname": "org.elasticsearch.transport.Netty3Plugin",
          "has_native_controller": false
        },
        {
          "name": "transport-netty4",
          "version": "5.6.3",
          "description": "Netty 4 based transport implementation",
          "classname": "org.elasticsearch.transport.Netty4Plugin",
          "has_native_controller": false
        }
      ],
      "ingest": {
        "processors": [
          {
            "type": "append"
          },
          {
            "type": "convert"
          },
          {
            "type": "date"
          },
          {
            "type": "date_index_name"
          },
          {
            "type": "dot_expander"
          },
          {
            "type": "fail"
          },
          {
            "type": "foreach"
          },
          {
            "type": "grok"
          },
          {
            "type": "gsub"
          },
          {
            "type": "join"
          },
          {
            "type": "json"
          },
          {
            "type": "kv"
          },
          {
            "type": "lowercase"
          },
          {
            "type": "remove"
          },
          {
            "type": "rename"
          },
          {
            "type": "script"
          },
          {
            "type": "set"
          },
          {
            "type": "sort"
          },
          {
            "type": "split"
          },
          {
            "type": "trim"
          },
          {
            "type": "uppercase"
          }
        ]
      }
    }
  }
}

After improving EsProtocolException, I was able to get the error: "Error in $: key \"status\" not present"

bitemyapp commented 6 years ago

This error might just mean it failed to parse an error, though.