Solr 9 スタンドアロンモードで、ShardHandlerFactoryが定義されているときにnullPointerExceptionが発生します

トピック作成者:ks-solruserml-bot (2024/07/18 12:07 投稿)
2
CloseClose

(The bot translated the original post https://lists.apache.org/thread/z02wj3n1m7pgw9t3d2lj9xdoh4lzsjh2 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは皆さん、

私たちはSolrを8.11から9.0にアップグレードする過程にいます。CIテストのためにイメージをアップグレードしている際(つまり、Solrはスタンドアロンモードで実行されています)、solrconfig.xmlファイルの任意のハンドラに対して「shardHandlerFactory」が定義されているときに、Solrが「NullPointerException」エラーでコアの作成に失敗することに気付きました。

solrconfig.xmlのスニペット:

<requestHandler name="/select" class="solr.SearchHandler" default="true">
…..
<shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:800}</int>
<int name="connTimeout">${connTimeout:500}</int>
</shardHandlerFactory>
</requestHandler>

NullPointerExceptionのスニペット(完全なテキストはこちら: https://justpaste.it/5lntq):

olxeu-atlas-web-dist-solr-1 | Caused by: java.lang.NullPointerException
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.handler.component.HttpShardHandlerFactory.setSecurityBuilder(HttpShardHandlerFactory.java:299) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.handler.component.SearchHandler.inform(SearchHandler.java:185) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:722) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1155) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1048) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1560) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at org.apache.solr.core.CoreContainer.lambda$load$10(CoreContainer.java:950) ~[?:?]
olxeu-atlas-web-dist-solr-1 | at com.codahale.metrics.InstrumentedExecutorService$InstrumentedCallable.call(InstrumentedExecutorService.java:202) ~[metrics-core-4.1.5.jar:4.1.5]

手順:

  1. Dockerでlibrary/solr:9.0.0を実行します(デフォルト設定、調整なし);shardHandlerFactoryとschema.xmlを含むsolrconfig.xmlをマウントします。
  2. solrconfig.xmlを使用してコアを作成します:http://localhost:8983/solr/admin/cores?action=CREATE&name=test&instanceDir=/var/solr/data/test&config=solrconfig.xml&dataDir=data/
  3. NullPointerExceptionで失敗します。
  4. shardHandlerFactoryブロックを削除します。
  5. 手順2を繰り返します。
  6. 成功します。

SolrをSolrCloudモードで実行すると正常に動作します。

shardHandlerFactoryがスタンドアロンモードで実行しているときには効果がないのは理解できますが(ノード間のリクエストルーティングがないため)、スタンドアロンモード(つまり、CIテスト中)とクラウドモード(つまり、本番クラスター)の両方でまったく同じsolrconfig.xmlをテストして適用する必要があるシナリオがあります。以前のバージョンのSolrのように無関係な設定を無視するのが予想される動作でしょうか?

この問題に直面した方はいますか?解決するためのアプローチは何でしょうか?おそらく、すでに報告されているバグでしょうか?ありがとうございます。

よろしくお願いします。
Nick Vladiceanu

返信投稿者:ks-solruserml-bot (2024/07/18 12:07 投稿)

この問題は簡単に修正できるようですね。スタンドアロンモードがshardHandlerFactoryを含めるべきかどうかに関わらずです。

もしJIRAを作成していただければ、私がPRを提出します。

CIテストや本番クラスターに関するコメントについては、埋め込みZooKeeperを使用し、CI用に単一ノードのSolr Cloudを作成することをお勧めします。できるだけすべての環境を同様に保つのがベストです。

  • Houston
返信投稿者:ks-solruserml-bot (2024/07/18 12:07 投稿)

素晴らしいですね。こちらのJIRAチケットを作成しました。https://issues.apache.org/jira/browse/SOLR-16485

ご協力ありがとうございます。

よろしくお願いします。
Nick Vladiceanu

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?