web-dev-qa-db-ja.com

Solrを修正する方法-サーバーがシャットダウンの問題を抱えていますか?

Windows Server 2008 R2でSolr 4.1を実行していました。 SolrはTomcatにデプロイされます。しかし、今日は突然停止し、Solrへのアクセス中に次のエラーが発生します。

HTTP Status 503 - Server is shutting down

type Status report

message Server is shutting down

description The requested service is not currently available.

ログをさらに調べると、次のことがわかりました。

ログファイル:Tomcat7-stderr.2013-05-09.txt

    May 09, 2013 8:00:40 PM org.Apache.solr.core.CoreContainer finalize
    SEVERE: CoreContainer was not shutdown prior to finalize(), indicates a bug -- POSSIBLE RESOURCE LEAK!!!  instance=2221663

ログファイル:catalina.2013-05-09.txt

May 09, 2013 7:59:25 PM org.Apache.solr.core.SolrResourceLoader <init>
INFO: new SolrResourceLoader for directory: 'c:\solrdir\'
May 09, 2013 7:59:29 PM org.Apache.solr.common.SolrException log
SEVERE: Exception during parsing file: null:org.xml.sax.SAXParseException; systemId: file:/c:/solr/solr.xml; lineNumber: 2; columnNumber: 6; The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.scanPIData(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.scanPI(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.Apache.solr.core.Config.<init>(Config.Java:121)
    at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java:428)
    at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java:404)
    at org.Apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.Java:336)
    at org.Apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.Java:98)
    at org.Apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.Java:281)
    at org.Apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.Java:262)
    at org.Apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.Java:107)
    at org.Apache.catalina.core.StandardContext.filterStart(StandardContext.Java:4656)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5309)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:901)
    at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:877)
    at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:633)
    at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:977)
    at org.Apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.Java:1655)
    at Java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at Java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at Java.util.concurrent.FutureTask.run(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at Java.lang.Thread.run(Unknown Source)

May 09, 2013 7:59:29 PM org.Apache.solr.servlet.SolrDispatchFilter init
SEVERE: Could not start Solr. Check solr/home property and the logs
May 09, 2013 7:59:29 PM org.Apache.solr.common.SolrException log
SEVERE: null:org.Apache.solr.common.SolrException: 
    at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java:431)
    at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java:404)
    at org.Apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.Java:336)
    at org.Apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.Java:98)
    at org.Apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.Java:281)
    at org.Apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.Java:262)
    at org.Apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.Java:107)
    at org.Apache.catalina.core.StandardContext.filterStart(StandardContext.Java:4656)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5309)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:901)
    at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:877)
    at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:633)
    at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:977)
    at org.Apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.Java:1655)
    at Java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at Java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at Java.util.concurrent.FutureTask.run(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at Java.lang.Thread.run(Unknown Source)
Caused by: org.xml.sax.SAXParseException; systemId: file:/c:/solrdir/solr.xml; lineNumber: 2; columnNumber: 6; The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.scanPIData(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.scanPI(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.Sun.org.Apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.Apache.solr.core.Config.<init>(Config.Java:121)
    at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java:428)
    ... 20 more

May 09, 2013 7:59:29 PM org.Apache.solr.servlet.SolrDispatchFilter init
INFO: SolrDispatchFilter.init() done
May 09, 2013 7:59:29 PM org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps\docs
May 09, 2013 7:59:30 PM org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps\manager
May 09, 2013 7:59:30 PM org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
May 09, 2013 7:59:30 PM org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8983"]
May 09, 2013 7:59:30 PM org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
May 09, 2013 7:59:30 PM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 9578 ms
May 09, 2013 8:00:40 PM org.Apache.solr.core.CoreContainer finalize
SEVERE: CoreContainer was not shutdown prior to finalize(), indicates a bug -- POSSIBLE RESOURCE LEAK!!!  instance=2221663

何が間違っているのか、どのように修正すればよいですか?

2
Krunal

Solr.xmlファイルの上部にある空白行を削除して修正しました。しかし、今は別のエラーが表示されますが、Solrは現在実行されているようです。

これは私が問題を理解するのに役立ちました:

http://www.bennadel.com/blog/58-The-Processing-Instruction-Target-Matching-xX-mM-lL-is-Not-Allowed.htm

3
Krunal

コアをコピーするときにも同じ問題が発生しました。

Oは、私の場合、ユーザーをqaにコピーしました。

name = usersname = qa内部に変更したときcore.propertiesファイル、それはすべて作業に戻りました。

細かいことがすべて重要であり、Solrが悲しいことにJavaで記述されていたため、エラーメッセージは通常無意味です。

XMLを安全にするには、 http://www.xmlvalidation.com/ のようなものを使用して、1日を台無しにする単純な構文エラーではないことを確認してください。

1
Magus

他の誰かがこの問題に直面している場合に備えて、この代替ソリューションを文書化するだけです(ただし、Solrのアプリケーションサーバーログに「SAXParseException」は表示されません)。

このクラスを確認した場合: http://grepcode.com/file/repo1.maven.org/maven2/org.Apache.solr/solr-core/4.3.0/org/Apache/solr/servlet/ SolrDispatchFilter.Java/

コアを初期化できない場合、HTTP 503を返すことがわかります

if (this.cores == null) {
    ((HttpServletResponse)response).sendError( 503, "Server is shutting down" );
    return;
}

これは私見ですが、誤解を招くようなものですが、これは基本的に、SolrCloudにコア/シャードがないことを意味します(つまり、誰かがZookeeperサーバーに干渉している可能性があります)。これも、私の場合の根本的な原因です。誰かが同じ問題に直面している場合に備えて共有するだけです。

0
theMarceloR

最終的に、dist/solrj-lib(Linuxで実行中)の下のすべてのライブラリを/usr/share/Tomcat7/libにコピーしました。これで503エラーが解消されましたが、さらに、ユーザーとグループ$SOLR_HOMEが所有するTomcat7ディレクトリとサブアイテムの権限を変更する必要があり、solr.xmlファイルなので、<solr/>だけが残りました。

最近Solrをセットアップすることはかなりの使命です。彼らが正しいデフォルトのセットを提供し、これらのすべてのステップなしですべてを稼働させるためのライブラリーを含めることができれば、それは素晴らしいことです。

0
mydoghasworms

スレーブノードにディスク領域が残っていません。スペースを空けてTomcatを再起動し、問題は解決しました。

注:-catalina.outログファイルを確認すると、正確なエラーが発生します。

0
AVINASH KUMAR

solr.xmlのコアタグを閉じてみてください。お気に入り:

<core name="eg1" instanceDir="eg1Dir"/>
0
hshah