2012-12-27 76 views
1

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

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

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

编辑:

我正在码头8,使用Solr例如Ubuntu的12.04机器上捆绑在一起。当我使用start.jar和服务器不能正常启动时,关闭jetty抛出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) 
+0

你可以编辑并添加更多的ThreadPoolException吗? –

+0

增加了一个堆栈跟踪。如果您需要更多信息,请与我们联系。 – sbidwai

+0

好吧,认为这个异常是一个红鲱鱼,可能是一个请求被锁定在某个内部的solr上,而没有完全清理完。 –

回答

0

看来问题出在solrconfig.xml

如果我删除/browse来自solrconfig的请求处理程序问题消失。所以不是solr或jetty问题,但最有可能与它的配置有关。

0

由于异常并没有指出什么有趣的事,我会建议,当它被挂,你现在把整个服务器的线程转储和分析是什么阻止了正确的启动。这些可能需要一些试验和错误来弄清楚什么是什么,但应该让你知道什么是持有的东西。请注意,线程转储中以qtp开头的线程很少成为问题,它们用于处理请求,因此可能存在多个线程,这并不表示它们是问题。常见的问题是数据库池等问题,这些问题在池中“等待”,等等。

+0

我没有在我的应用程序中使用任何数据库,它只是用于存储的solr。另外,由于该问题即将启动,我不确定是否要处理被阻止的请求。你知道是否有关于码头关闭的已知问题?可能是我没有完全停止,因此再次启动时出现问题。我可以根据需要加载码头,每秒高达50+个请求,而且没有问题。但是,当我需要停止服务器并重新启动时,会出现问题。 – sbidwai

+0

线程转储应该对此进行排序。我当然不是说它不是配置问题,只是线程转储会突出显示正在发生的事情。我只提到了数据库连接池。 –

+0

http://pastebin.com/GPnAzF1q这里是threaddump。我在分析它方面不是很有经验,但仍在尝试。 – sbidwai