I think the issue probably has to do with doing a rolling upgrade from an
old version of geode (with an old version of lucene) to the new version of
geode.

Geode's lucene integration works by writing the lucene index to a colocated
region. So lucene index data that was generated on one server can be
replicated or rebalanced to other servers.

I think what may be happening is that data written by a geode member with a
newer version is being read by a geode member with an old version. Because
this is a rolling upgrade test, members with multiple versions will be
running as part of the same cluster.

I think to really fix this rolling upgrade issue we would need to somehow
configure the new version of lucene to write data in the old format, at
least until the rolling upgrade is complete. I'm not sure if that is
possible with lucene or not - but perhaps? Another option might be to
freeze writes to the lucene index during the rolling upgrade process.
Lucene indexes are asynchronous, so this wouldn't necessarily require
blocking all puts. But it would require queueing up a lot of updates.

-Dan

On Mon, Nov 4, 2019 at 12:05 AM Mario Kevo <mario.k...@est.tech> wrote:

> Hi geode dev,
>
> I'm working on upgrade lucene to a newer version. (
> https://issues.apache.org/jira/browse/GEODE-7309)
>
> I followed instruction from
> https://cwiki.apache.org/confluence/display/GEODE/Upgrading+to+Lucene+7.1.0
> Also add some other changes that is needed for lucene 8.2.0.
>
> I found some problems with tests:
>  * geode-
>    lucene/src/test/java/org/apache/geode/cache/lucene/internal/distribu
>    ted/DistributedScoringJUnitTest.java:
>
>
>  *
> geode-lucene/src/upgradeTest/java/org/apache/geode/cache/lucene/RollingUpgradeQueryReturnsCorrectResultsAfterClientAndServersAreRolledOver.java:
>  *
> geode-lucene/src/upgradeTest/java/org/apache/geode/cache/lucene/RollingUpgradeQueryReturnsCorrectResultAfterTwoLocatorsWithTwoServersAreRolled.java:
>  *
> ./geode-lucene/src/upgradeTest/java/org/apache/geode/cache/lucene/RollingUpgradeQueryReturnsCorrectResultsAfterServersRollOverOnPartitionRegion.java:
>  *
> ./geode-lucene/src/upgradeTest/java/org/apache/geode/cache/lucene/RollingUpgradeQueryReturnsCorrectResultsAfterServersRollOverOnPersistentPartitionRegion.java:
>
>       -> failed due to
> Caused by: org.apache.lucene.index.IndexFormatTooOldException: Format
> version is not supported (resource
> BufferedChecksumIndexInput(segments_1)): 6 (needs to be between 7 and
> 9). This version of Lucene only supports indexes created with release
> 6.0 and later.
>         at
> org.apache.lucene.codecs.CodecUtil.checkHeaderNoMagic(CodecUtil.java:21
> 3)
>         at
> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:305)
>         at
> org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:289)
>         at
> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:846)
>         at
> org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.finishCom
> putingRepository(IndexRepositoryFactory.java:123)
>         at
> org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.computeIn
> dexRepository(IndexRepositoryFactory.java:66)
>         at
> org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.com
> puteRepository(PartitionedRepositoryManager.java:151)
>         at
> org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.lam
> bda$computeRepository$1(PartitionedRepositoryManager.java:170)
>         ... 16 more
>
>
>  *
> geode-lucene/src/upgradeTest/java/org/apache/geode/cache/lucene/RollingUpgradeQueryReturnsCorrectResultsAfterClientAndServersAreRolledOverAllBucketsCreated.java:
>
>       -> failed with the same exception as previous tests
>
>
> I found this on web
>
> https://stackoverflow.com/questions/47454434/solr-indexing-issue-after-upgrading-from-4-7-to-7-1
> , but not have an idea how to proceed with that.
>
> Does anyone has any idea how to fix it?
>
> BR,
> Mario
>
>
>
>
>

Reply via email to