有没有人可以帮助找出Solr在创建内核时挂起的原因?在Red Hat Linux机器上,当Solr尝试在启动时创建核心,或者当它被特别请求创建核心时,就会发生这种情况。它为Lucene索引创建数据目录并写入。锁定文件,但随后进程停止。Solr仍然是响应的,但核心卡在加载阶段。
我从线程转储中挑选了这个:
coreLoadExecutor-6-thread-1 (25)
sun.nio.fs.UnixNativeDispatcher.stat0(Native Method)
sun.nio.fs.UnixNativeDispatcher.stat(UnixNativeDispatcher.java:286)
sun.nio.fs.UnixFileAttributes.get(UnixFileAttributes.java:70)
sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:55)
sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:70)
sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:48)
sun.nio.fs.LinuxFileSystem.getFileStore(LinuxFileSystem.java:112)
sun.nio.fs.UnixFileSystem$FileStoreIterator.readNext(UnixFileSystem.java:213)
sun.nio.fs.UnixFileSystem$FileStoreIterator.hasNext(UnixFileSystem.java:224)
org.apache.lucene.util.IOUtils.getFileStore(IOUtils.java:543)
org.apache.lucene.util.IOUtils.spinsLinux(IOUtils.java:487)
org.apache.lucene.util.IOUtils.spins(IOUtils.java:476)
org.apache.lucene.util.IOUtils.spins(IOUtils.java:451)
org.apache.lucene.index.ConcurrentMergeScheduler.initDynamicDefaults(ConcurrentMergeScheduler.java:376)
org.apache.lucene.index.ConcurrentMergeScheduler.merge(ConcurrentMergeScheduler.java:464)
org.apache.lucene.index.IndexWriter.waitForMerges(IndexWriter.java:2425)
org.apache.lucene.index.IndexWriter.shutdown(IndexWriter.java:1118)
org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1162)
org.apache.solr.update.SolrIndexWriter.close(SolrIndexWriter.java:142)
org.apache.solr.core.SolrCore.initIndex(SolrCore.java:588)
org.apache.solr.core.SolrCore.<init>(SolrCore.java:762)
org.apache.solr.core.SolrCore.<init>(SolrCore.java:688)
org.apache.solr.core.CoreContainer.create(CoreContainer.java:838)
org.apache.solr.core.CoreContainer.lambda$load$0(CoreContainer.java:494)
org.apache.solr.core.CoreContainer$$Lambda$25/1297978429.call(Unknown Source)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:229)
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$$Lambda$26/348984985.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
这是运行时间最长的线程,还有'DestroyJavaVM (28)'
我检查了权限,并在solrconfig中尝试了各种索引配置。Solr的相同安装/配置在其他机器上也可以正常工作。我认为这很可能是文件系统或操作系统相关的
所以这确实是一个坏磁盘。我还没有弄清它到底出了什么问题。从表面上看,驱动器上有空间,没有明显的问题。将Solr home更改为另一个挂载驱动器可以解决此问题。我以前从未见过这种行为,即使离开了几天,stat call也没有回来。
所以如果你有这个问题,并且有其他可用的驱动器——试一试也无妨。