kitodo-production icon indicating copy to clipboard operation
kitodo-production copied to clipboard

Mapper parsing exception: normalizer 'lowercase' not found

Open matthias-ronge opened this issue 1 year ago • 5 comments

Describe the bug Some ElasticSearch implementations refuse to create the index with the error message:

ResponseException: method [PUT], host [http://localhost:9201], URI [/kitodo_process], status line [HTTP/1.1 400 Bad Request] {"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"normalizer [lowercase] not found for field [keyword]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: normalizer [lowercase] not found for field [keyword]","caused_by":{"type":"mapper_parsing_exception","reason":"normalizer [lowercase] not found for field [keyword]"}},"status":400}

To Reproduce Steps to reproduce the behavior:

  1. The error requires a specific ElasticSearch version. I couldn't determine exactly which one it concerns.
  2. Go to the System Indexing page
  3. With an empty index, click "Create ElasticSearch Index"
  4. See error

Expected behavior The index should be able to be created.

Release 3.6.1

Desktop

  • OS: Windows 10
  • Browser: Firefox 122.0

Additional context

Server OS : SLES 12 SP5

Elasticsearch version information:

{
  "name" : "sla901t",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "BqAMCaCYSnW3-gvQo94-AA",
  "version" : {
    "number" : "7.3.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "4749ba6",
    "build_date" : "2019-08-19T20:19:25.651794Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Java version:

/usr/share/elasticsearch/jdk/bin/java -version
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)

matthias-ronge avatar Feb 01 '24 15:02 matthias-ronge

Is updating ElasticSearch to 7.17.x an option as 7.3.x is very old? Even the used Java version is to new as only Java 11 is currently supported (but should not the main reason why this issue exist).

Edit: The Java version output come from the bundled Java version from ElasticSearch which is in most cases not used from Kitodo.Production application. So ignore my comment regarding to the Java version.

henning-gerhardt avatar Feb 01 '24 15:02 henning-gerhardt

I have not been able to understand why this error suddenly appears. It happened with the last update of Production that the index could no longer be created. Yes, the server is older, and before that, Production ran there without any problems. The solution is trivial—once I found it—but why something else is suddenly necessary, that remains a mystery to me.

matthias-ronge avatar Feb 01 '24 16:02 matthias-ronge

I remove the blocking label as the solution is found and it doesn’t block the current master.

matthias-ronge avatar Feb 01 '24 16:02 matthias-ronge

Maybe this "change" is coming from updating the ElasticSearch client libraries between Kitodo.Production release 3.5.x to 3.6.x (7.17.7 over 7.17.8 to 7.17.10). If the Kitodo.Production version was 3.4.x or earlier there are maybe more updates of the Elastic Search client library.

henning-gerhardt avatar Feb 01 '24 16:02 henning-gerhardt

The server will also be updated soon. I don't have permission to do this myself. Now that the problem has been solved, it is no longer as urgent.

matthias-ronge avatar Feb 07 '24 08:02 matthias-ronge