Solr 8.7 を Java 11 Open J9 で起動するときに、コマンドラインオプションが認識されない

トピック作成者:ks-solruserml-bot (2024/05/22 21:03 投稿)
4
CloseClose

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

こんにちは、

現在、Java 8 から Java 11 への移行を進めています。

Windows上でOpenJ9 Javaを使ってSolr 8.7.0を起動すると、次のメッセージが表示されます:

JVMJ9VM007W Command-line option unrecognised: -Xlog:gc*:file="C:\solr\server\logs\solr_gc.log":time,uptime:filecount=9,filesize=20M
JVMJ9GC063E Unable to open file '"C' for writing

その後、コンソールにはガベージコレクションの出力が続きますが、Solrは問題なく起動し、動作しているように見えます。同じリリースのJava 11 Hotspotに変更すると、警告や他の問題は見られません。

Ubuntu上のJava 11 Open J9でも同様の問題が発生します。Solrログには「Command-line option unrecognised」というメッセージが表示されますが、コンソールには表示されません。solr_gcログは正しく作成され、内容も記録されています。

これを確認したのは、OpenJDK 11.0.10+9リリースを使用した場合です。

以下は私たちの起動コマンドの例です:

C:/solr/bin/solr.cmd start -c -p 8983 -s C:/data/solr/8/clusters/is_cluster/nodes/node1 -a "-Dcom.ibm.crypto.provider.DoRSATypeChecking=false -Djetty.server=com.i2group.disco.search.solr.jetty.wrapper.XmlConfigurationWrapper -Dpkiauth.ttl=60000 -Dsolr-node-id=node1 -DzkCredentialsProvider=com.i2group.disco.search.solr.common.zookeeper.auth.internal.EncodedZkCredentialsProvider -Djdk.nativeCrypto=false" -m 2g -z "localhost:9983/is_cluster"

よろしくお願いします。

Lisa

返信投稿者:ks-solruserml-bot (2024/05/22 21:04 投稿)

こんにちは Elizaveta、

私もOpenJ9で別の問題でVerifyErrorに遭遇しました。OpenJ9は安定性の面で良い選択ではないようです。
どちらにせよ、Hotspotを使用することをお勧めします。

返信投稿者:ks-solruserml-bot (2024/05/22 21:05 投稿)

WindowsからUnixへのパス変換は奇妙です。'\c\solr\server\logs\solr_gc.log' のようなものがいくつかの場合で動作します。

Dima

返信投稿者:ks-solruserml-bot (2024/05/22 21:05 投稿)

Open J9については何も知りませんが、簡単に調べたところ、OpenJ9がある時点で -Xlog の解析ルールを変更したようです。現在のドキュメントには、あなたが使用しているオプション('file'以外)についての記載がありません。

https://www.eclipse.org/openj9/docs/xlog/
https://www.eclipse.org/openj9/docs/xxlegacyxlogoption/

-Hoss
http://www.lucidworks.com/

返信投稿者:ks-solruserml-bot (2024/05/22 21:06 投稿)

こんにちは、

はい、Chris、その件についてOpen J9のバックログに問題が登録されています:
https://github.com/eclipse/openj9/issues/8195

これは solr.cmdGC_LOG_OPTS に関連しています。
残念ながら、次の理由から solr.in.cmd では設定できません:
「Java 9以降では:GC_LOG_OPTSは現在サポートされていません。設定すると、スタートアップスクリプトは失敗して終了します。」

-verbose:gc オプションが動作するため、OpenJ9のJavaでpre Java 9の GC_LOG_OPTSsolr.cmd に設定することが有効であり、HotSpotオプションの設定方法を変更しないことが分かりました。

if !JAVA_MAJOR_VERSION! GEQ 9 IF "%JAVA_VENDOR%" IF NOT "IBM J9" (
REM instead of: if !JAVA_MAJOR_VERSION! GEQ 9 IF "%JAVA_VENDOR%"(
IF NOT "%GC_LOG_OPTS%"=="" (
echo ERROR: On Java 9 you cannot set GC_LOG_OPTS, only default GC logging is available. Exiting
GOTO :eof
)
set GC_LOG_OPTS="-Xlog:gc*:file="!SOLR_LOGS_DIR!\solr_gc.log":time,uptime:filecount=9,filesize=20M"
) else (
IF "%GC_LOG_OPTS%"=="" (
rem Set defaults for Java 8
set GC_LOG_OPTS=-verbose:gc ^
-XX:+PrintHeapAtGC ^
-XX:+PrintGCDetails ^
-XX:+PrintGCDateStamps ^
-XX:+PrintGCTimeStamps ^
-XX:+PrintTenuringDistribution ^
-XX:+PrintGCApplicationStoppedTime
)
if "%JAVA_VENDOR%" == "IBM J9" (
set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xverbosegclog:!SOLR_LOGS_DIR!\solr_gc.log" -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M
) else (
set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xloggc:!SOLR_LOGS_DIR!\solr_gc.log" -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M
)
)

このような変更をパッチや将来のリリースに含めることは可能でしょうか?

Lisa

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

KandaSearch

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

投稿の削除

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