WSO2 企业集成商 - Solr 索引损坏
WSO2 Enterprise Integrator - Solr Index Corrupted
我在 CentOS Linux 7 上有一个 WSO2 EI 6.1.1 运行 的实例,突然它开始在日志中每次都吐出一个 CorruptIndexException: file mismatch
错误我部署任何类型的工件。 WSO2 实例运行良好,部署也已完成,但索引编制出现问题。几天前服务器内存不足,所以这可能是相关的。
这是整个异常:
An error occurred while submitting the resource for indexing, path: /_system/config/repository/axis2/service-groups/CES/services/[file]
org.apache.solr.common.SolrException: SolrCore 'registry-indexing' is not available due to init failure: Error opening new searcher
at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:884)
at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:147)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:135)
at org.apache.solr.client.solrj.SolrClient.deleteById(SolrClient.java:754)
at org.apache.solr.client.solrj.SolrClient.deleteById(SolrClient.java:717)
at org.apache.solr.client.solrj.SolrClient.deleteById(SolrClient.java:732)
at org.wso2.carbon.registry.indexing.solr.SolrClient.deleteFromIndex(SolrClient.java:510)
at org.wso2.carbon.registry.indexing.IndexingManager.deleteFromIndex(IndexingManager.java:164)
at org.wso2.carbon.registry.indexing.ResourceSubmitter.submitResource(ResourceSubmitter.java:137)
at org.wso2.carbon.registry.indexing.ResourceSubmitter.run(ResourceSubmitter.java:76)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.solr.common.SolrException: Error opening new searcher
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:815)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:658)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:637)
at org.apache.solr.core.CoreContainer.call(CoreContainer.java:381)
at org.apache.solr.core.CoreContainer.call(CoreContainer.java:375)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.run(ExecutorUtil.java:148)
... 3 more
Caused by: org.apache.solr.common.SolrException: Error opening new searcher
at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1657)
at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1769)
at org.apache.solr.core.SolrCore.initSearcher(SolrCore.java:911)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:788)
... 9 more
Caused by: org.apache.lucene.index.CorruptIndexException: file mismatch, expected id=3dmwhk1nt61hefvijkvdik5y1, got=eiuu5dyvcfbb1hnk1af9iv2u3 (resource=BufferedChecksumIndexInput(MMapIndexInput(path="/home/dev/esb/wso2ei-6.1.1/solr/data/index/_659.si")))
at org.apache.lucene.codecs.CodecUtil.checkIndexHeaderID(CodecUtil.java:267)
at org.apache.lucene.codecs.CodecUtil.checkIndexHeader(CodecUtil.java:257)
at org.apache.lucene.codecs.lucene50.Lucene50SegmentInfoFormat.read(Lucene50SegmentInfoFormat.java:86)
at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:326)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:830)
at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:78)
at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:65)
at org.apache.solr.update.DefaultSolrCoreState.createMainIndexWriter(DefaultSolrCoreState.java:273)
at org.apache.solr.update.DefaultSolrCoreState.getIndexWriter(DefaultSolrCoreState.java:116)
at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1626)
... 12 more
Suppressed: org.apache.lucene.index.CorruptIndexException: checksum passed (1527bdd6). possibly transient resource issue, or a Lucene or JVM bug (resource=BufferedChecksumIndexInput(MMapIndexInput(path="/home/dev/esb/wso2ei-6.1.1/solr/data/index/_659.si")))
at org.apache.lucene.codecs.CodecUtil.checkFooter(CodecUtil.java:380)
at org.apache.lucene.codecs.lucene50.Lucene50SegmentInfoFormat.read(Lucene50SegmentInfoFormat.java:117)
... 19 more
我试图搜索如何在 WSO EI 上重置/重新索引,但所有结果都是针对 APIM 或 Analytics 的,并且文件不匹配。我也尝试过挖掘文件,但我对 WSO2 的内部工作原理了解不多。
注册表索引似乎已损坏或未正确生成。您能否按照以下步骤重新索引注册表,
- 打开 registry.xml 文件,它位于
<PRODUCT_HOME>/conf/
.
- 如下更改
lastAccessTimeLocation
。例如:/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstime_1
- 停止服务器,备份并删除
<PRODUCT_HOME>/solr
目录。
- 重启服务器并等待几分钟重新索引
我在 CentOS Linux 7 上有一个 WSO2 EI 6.1.1 运行 的实例,突然它开始在日志中每次都吐出一个 CorruptIndexException: file mismatch
错误我部署任何类型的工件。 WSO2 实例运行良好,部署也已完成,但索引编制出现问题。几天前服务器内存不足,所以这可能是相关的。
这是整个异常:
An error occurred while submitting the resource for indexing, path: /_system/config/repository/axis2/service-groups/CES/services/[file]
org.apache.solr.common.SolrException: SolrCore 'registry-indexing' is not available due to init failure: Error opening new searcher
at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:884)
at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:147)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:135)
at org.apache.solr.client.solrj.SolrClient.deleteById(SolrClient.java:754)
at org.apache.solr.client.solrj.SolrClient.deleteById(SolrClient.java:717)
at org.apache.solr.client.solrj.SolrClient.deleteById(SolrClient.java:732)
at org.wso2.carbon.registry.indexing.solr.SolrClient.deleteFromIndex(SolrClient.java:510)
at org.wso2.carbon.registry.indexing.IndexingManager.deleteFromIndex(IndexingManager.java:164)
at org.wso2.carbon.registry.indexing.ResourceSubmitter.submitResource(ResourceSubmitter.java:137)
at org.wso2.carbon.registry.indexing.ResourceSubmitter.run(ResourceSubmitter.java:76)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.solr.common.SolrException: Error opening new searcher
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:815)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:658)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:637)
at org.apache.solr.core.CoreContainer.call(CoreContainer.java:381)
at org.apache.solr.core.CoreContainer.call(CoreContainer.java:375)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.run(ExecutorUtil.java:148)
... 3 more
Caused by: org.apache.solr.common.SolrException: Error opening new searcher
at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1657)
at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1769)
at org.apache.solr.core.SolrCore.initSearcher(SolrCore.java:911)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:788)
... 9 more
Caused by: org.apache.lucene.index.CorruptIndexException: file mismatch, expected id=3dmwhk1nt61hefvijkvdik5y1, got=eiuu5dyvcfbb1hnk1af9iv2u3 (resource=BufferedChecksumIndexInput(MMapIndexInput(path="/home/dev/esb/wso2ei-6.1.1/solr/data/index/_659.si")))
at org.apache.lucene.codecs.CodecUtil.checkIndexHeaderID(CodecUtil.java:267)
at org.apache.lucene.codecs.CodecUtil.checkIndexHeader(CodecUtil.java:257)
at org.apache.lucene.codecs.lucene50.Lucene50SegmentInfoFormat.read(Lucene50SegmentInfoFormat.java:86)
at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:326)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:830)
at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:78)
at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:65)
at org.apache.solr.update.DefaultSolrCoreState.createMainIndexWriter(DefaultSolrCoreState.java:273)
at org.apache.solr.update.DefaultSolrCoreState.getIndexWriter(DefaultSolrCoreState.java:116)
at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1626)
... 12 more
Suppressed: org.apache.lucene.index.CorruptIndexException: checksum passed (1527bdd6). possibly transient resource issue, or a Lucene or JVM bug (resource=BufferedChecksumIndexInput(MMapIndexInput(path="/home/dev/esb/wso2ei-6.1.1/solr/data/index/_659.si")))
at org.apache.lucene.codecs.CodecUtil.checkFooter(CodecUtil.java:380)
at org.apache.lucene.codecs.lucene50.Lucene50SegmentInfoFormat.read(Lucene50SegmentInfoFormat.java:117)
... 19 more
我试图搜索如何在 WSO EI 上重置/重新索引,但所有结果都是针对 APIM 或 Analytics 的,并且文件不匹配。我也尝试过挖掘文件,但我对 WSO2 的内部工作原理了解不多。
注册表索引似乎已损坏或未正确生成。您能否按照以下步骤重新索引注册表,
- 打开 registry.xml 文件,它位于
<PRODUCT_HOME>/conf/
. - 如下更改
lastAccessTimeLocation
。例如:/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstime_1
- 停止服务器,备份并删除
<PRODUCT_HOME>/solr
目录。 - 重启服务器并等待几分钟重新索引