【问题标题】:Solr stopped with Error opening new searcher at org.apache.solr.coreSolr 因在 org.apache.solr.core 打开新搜索器时出错而停止
【发布时间】:2015-06-10 04:45:28
【问题描述】:

昨天突然我们的 solr 服务器停止了以下异常

org.apache.solr.common.SolrException:打开新搜索器时出错 org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1438) 在 org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1550) 在 org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1319) 在 org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:574) 在 org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:95) 在 org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64) 在 org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:1147) 在 org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:157) 在 org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:266) 在 org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173) 在 org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)

原因:java.io.IOException: Map failed at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:889) 在 org.apache.lucene.store.MMapDirectory.map(MMapDirectory.java:283) 在 org.apache.lucene.store.MMapDirectory$MMapIndexInput.

但是当时我们在那个服务器上还剩下很多内存。有什么猜测吗?

【问题讨论】:

    标签: java solr lucene


    【解决方案1】:

    假设它是一个 linux 系统你可以试试ulimit -v unlimited

    查看以下链接了解更多信息。

    https://support.lucidworks.com/hc/en-us/articles/206127457-Caused-by-java-io-IOException-Map-failed

    https://stackoverflow.com/a/8893684/689625

    如果您包含更多信息,例如您的软件版本(在本例中为 solr 版本)、操作系统名称和版本、Java 版本等,您将更快地获得答案。

    【讨论】:

    • 在这样做之前有什么注意事项吗?
    【解决方案2】:

    flag -fix 在我的更高版本中不起作用,而是我使用了 exorcise

    java -cp lucene-core-5.5.0.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex PATH_TO_INDEX -exorcise
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我收到了这个错误:

      Error creating core [mm_shard1_replica1]: Error opening new searcher
      

      并尝试摆弄ulimitmax_map_count

      最后结果是一个错误的错误消息,因为问题原来是一个损坏的索引。

      通过关闭 solr 并执行以下操作来修复它:

      cd /var/lib/solr/example/solr-webapp/webapp/WEB-INF/lib
      java -cp lucene-core-4.10.4.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /path/to/index -fix
      

      要检查索引是否损坏,请删除上述命令末尾的-fix。之后我启动了 solr,它从 solrcloud 集群的其余部分重新创建了索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-13
        • 2015-02-22
        • 2021-03-26
        • 2018-06-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多