是什么原因导致Solr无法在Linux操作系统上创建内核?



有没有人可以帮助找出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也没有回来。

所以如果你有这个问题,并且有其他可用的驱动器——试一试也无妨。

相关内容

最新更新