Skip to content

NullPointerException in ElisionFilter on _analyze #43002

@telendt

Description

@telendt

Elasticsearch version (bin/elasticsearch --version):
Version: 7.1.1, Build: default/docker/7a013de/2019-05-23T14:04:00.380842Z, JVM: 12.0.1
(but happens in older versions too)

Steps to reproduce:

curl -sH 'Content-Type: application/json' 'localhost:9200/_analyze' -d '
{
  "text": "l’avion",
  "tokenizer": "standard",
  "filter": ["elision"]
}' | jq .

output:

{
  "error": {
    "root_cause": [
      {
        "type": "remote_transport_exception",
        "reason": "[12241dcbb809][172.20.0.2:9300][indices:admin/analyze[s]]"
      }
    ],
    "type": "null_pointer_exception",
    "reason": null
  },
  "status": 500
}

Provide logs (if relevant):

{
   "type":"server",
   "timestamp":"2019-06-07T19:15:38,854+0000",
   "level":"WARN",
   "component":"r.suppressed",
   "cluster.name":"docker-search-cluster",
   "node.name":"12241dcbb809",
   "cluster.uuid":"R-Zf6up6TXiv9aUhvgK03A",
   "node.id":"Fc9JysDfQm6Rp9FqaCu_Cg",
   "message":"path: /_analyze, params: {}",
   "stacktrace":[
      "org.elasticsearch.transport.RemoteTransportException: [12241dcbb809][172.20.0.2:9300][indices:admin/analyze[s]]",
      "Caused by: java.lang.NullPointerException",
      "at org.apache.lucene.analysis.util.ElisionFilter.incrementToken(ElisionFilter.java:66) ~[lucene-analyzers-common-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:59:47]",
      "at org.elasticsearch.action.admin.indices.analyze.TransportAnalyzeAction.simpleAnalyze(TransportAnalyzeAction.java:276) ~[elasticsearch-7.1.1.jar:7.1.1]",
      "at org.elasticsearch.action.admin.indices.analyze.TransportAnalyzeAction.analyze(TransportAnalyzeAction.java:251) ~[elasticsearch-7.1.1.jar:7.1.1]",
      "at org.elasticsearch.action.admin.indices.analyze.TransportAnalyzeAction.shardOperation(TransportAnalyzeAction.java:170) ~[elasticsearch-7.1.1.jar:7.1.1]",
      "at org.elasticsearch.action.admin.indices.analyze.TransportAnalyzeAction.shardOperation(TransportAnalyzeAction.java:81) ~[elasticsearch-7.1.1.jar:7.1.1]",
      "at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$1.doRun(TransportSingleShardAction.java:117) [elasticsearch-7.1.1.jar:7.1.1]",
      "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751) [elasticsearch-7.1.1.jar:7.1.1]",
      "at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.1.1.jar:7.1.1]",
      "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]",
      "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
      "at java.lang.Thread.run(Thread.java:835) [?:?]"
   ]
}

Few words of context:
Elision filter seems to work fine to me in regular analyzer (created at the index creation time), so it's probably something related to the way filters are used by analyze API.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions