1

我无法让 solr + jetty 工作。我正在遵循来自 - http://wiki.apache.org/solr/SolrJetty的信件的所有说明。它工作得很好。但是当我多次重新启动码头时,在 3/4 这样的重新启动后它开始挂起。管理页面无法加载,我的应用无法获得与 solr 的连接。我还创建了一个工作文件夹 - /opt/solr/work. 我tmpdir也在/etc/default/jetty. 我可以tmpdir在 args 下确认已从管理仪表板设置为新路径。因此tmp,操作系统清除文件基本上不是问题。

我可能会错过什么?我是否应该查看我的代码,看看我是否没有正确提交?

我的配置 - 示例中的 Solr 4.0.0 和码头。带有 Open JDK 7 的 Ubuntu 12.04。

编辑:

我在 Ubuntu 12.04 机器上运行 Jetty 8,与 Solr 示例捆绑在一起。当我使用 start.jar 并且服务器无法正常启动时,关闭码头会引发 ThreadPoolException - 无法停止线程。

这是堆栈跟踪的转储:

2012-12-27 23:00:15.084:WARN:oejut.QueuedThreadPool:1 threads could not be stopped
2012-12-27 23:00:15.084:INFO:oejut.QueuedThreadPool:Couldn't stop Thread[qtp766488133-16,5,main]
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at sun.misc.Unsafe.park(Native Method)
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2081)
2012-12-27 23:00:15.085:INFO:oejut.QueuedThreadPool: at java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1425)
2012-12-27 23:00:15.086:INFO:oejut.QueuedThreadPool: at java.util.concurrent.Executors$DelegatedExecutorService.awaitTermination(Executors.java:636)
2012-12-27 23:00:15.086:INFO:oejut.QueuedThreadPool: at org.apache.solr.core.SolrCore.close(SolrCore.java:835)
2012-12-27 23:00:15.086:INFO:oejut.QueuedThreadPool: at org.apache.solr.handler.admin.CoreAdminHandler.getCoreStatus(CoreAdminHandler.java:865)
4

2 回答 2

0

由于异常没有指出任何有趣的东西,我建议当它挂起时,您现在对整个服务器进行线程转储并分析它是否阻止了正确启动。这些可能需要一些试验和错误才能弄清楚什么是什么,但应该让你知道是什么阻碍了事情。请注意,线程转储中以 qtp 开头的线程很少出现问题,它们用于处理请求,因此尽管其中可能有很多线程,但这并不表示它们是问题。常见问题是诸如在池资源上“等待”的数据库池之类的事情。

于 2012-12-27T17:38:34.947 回答
0

看来问题出在solrconfig.xml.

如果我/browse从问题中删除请求处理程序solrconfig就会消失。所以不是 solr 或码头问题,但很可能与它的配置有关。

于 2012-12-28T07:06:44.807 回答