2012-12-27 77 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