Skip to content

[BUG] RFS Fails to read ES 5 created indices on ES 6 Snapshot #1247

@AndreKurait

Description

@AndreKurait

What is the bug?

A Elasticsearch 6 cluster may have indices originally created on ES 5 (e.g. via snapshot restore from an ES 5 snapshot). These indices will contain segments which were written on ES 5 (and thus Lucene 6) and may exist indefinitely on the cluster.

When RFS runs on the index, when it encounters segments written on ES 5, the following error occurs preventing the migration from proceeding

Caused by: java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene62' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath. The current classpath supports the following names: [Lucene99, Lucene80, Lucene84, Lucene86, Lucene87, Lucene70, Lucene90, Lucene91, Lucene92, Lucene94, Lucene95]
at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:113) ~[lucene-core-9.11.1.jar:9.11.1 

What are your migration environments?

Source: ES 6.8, with index created on ES 5.6
Target: OS 2.17 (irrelevant)

How can one reproduce the bug?

Given a snapshot from an ES 5.x cluster, this can be restored onto an ES 6 cluster. Then a snapshot can be taken and reindex-from-snapshot can be initiated encountering the error.

An automated test reproducing the issue has been created here.

What is the expected behavior?

RFS reads the segments without issue.

Do you have any additional context?

Metadata

Metadata

Assignees

No one assigned

    Labels

    MAv2.2bugSomething isn't working

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions