1.8. 既知の問題
Red Hat build of Quarkus 3.20 の制限事項と回避策は、次の既知の問題を確認してください。
1.8.1. FIPS: FIPS 対応環境でのテストにおける既知の制限 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、FIPS (Federal Information Processing Standards) モードが有効になっている環境で、Quarkus アプリケーションがどのように動作するかを評価するためのテストが実施されました。
テストは一般的には正常に完了しますが、一部のテクノロジー統合とネイティブイメージ設定には現在、検証やコンパイルを妨げる制限があります。
FIPS 対応環境でのテストでは、OpenID Connect (OIDC)、サポート対象データベース、キャッシング、非ネイティブモードでの Kafka を使用したメッセージング、OpenTelemetry を含む、いくつかの主要コンポーネントで良好な結果が示されました。ただし、一部のテクノロジー統合とネイティブ設定は現在これらの環境では検証できません。
これらの結果は、Red Hat build of Quarkus またはそのコンポーネントが FIPS を公式にサポートしていることを示すものではありません。
検証できないシナリオ
現在、FIPS 対応環境では、次のテクノロジーの統合または設定は検証できません。
- MariaDB 11.x
- Mandrel 23.0 および 23.1 を使用した JVM モードとネイティブモードの両方での Infinispan クライアントエクステンション
- ネイティブモードで SCRAM と OAUTHBEARER SASL メカニズムを使用する Apache Kafka
- ネイティブモードの JDBC MSSQL ドライバー
- DB2
- ネイティブモードのリアクティブ MSSQL クライアント
- Red Hat Mandrel 23.1 ビルダーイメージを使用したネイティブイメージのコンパイル
注目すべき関連問題
次の公開 Jira チケットには、発生した制限に関する追加の詳細が記載されています。
- QUARKUS-5984: 互換性の問題により、MariaDB 11.x は FIPS 対応環境で接続できません。
- QUARKUS-2036: Infinispan クライアントエクステンションには FIPS 対応環境のサポートがありません。
- QUARKUS-2984: FIPS 対応の RHEL 8 では、JDBC MSSQL および Reactive MSSQL クライアントを使用したネイティブビルドが失敗します。
- QUARKUS-5232: SASL SCRAM メカニズムは、FIPS 対応環境内のネイティブモードでは使用できません。
- QUARKUS-5233: SASL OAUTHBEARER メカニズムは、FIPS 対応環境内のネイティブモードでは使用できません。
- MANDREL-254: Mandrel 23.1 ビルダーイメージは、FIPS 対応環境をサポートするために修正が必要です。
- QUARKUS-4387: Quarkus Reactive MySQL クライアントは FIPS 対応環境ではサポートされません。
- QUARKUS-4612: ネイティブ Mandrel 23.0 および 23.1 では、Infinispan クライアントエクステンションが FIPS で失敗します。
回避策
現在、回避策はありません。
このリリースノートは、より広範な互換性テストが継続される間に、既知の課題を事前に公開することを目的としています。
1.8.2. Kafka Streams エクステンションに Microsoft Windows のネイティブライブラリーがない リンクのコピーリンクがクリップボードにコピーされました!
Microsoft で quarkus-kafka-streams エクステンションを使用するアプリケーションは、ネイティブライブラリー librocksdbjni-win64.dll が見つからないため、ランタイムに失敗します。
起動中に、この問題により次のエラーが発生します。
java.lang.RuntimeException: librocksdbjni-win64.dll was not found inside JAR
java.lang.RuntimeException: librocksdbjni-win64.dll was not found inside JAR
このエラーにより、Kafka Streams アプリケーションに必要な RocksDB コンポーネントの初期化が妨げられます。
現時点で使用できる回避策はありません。
エラーの例
詳細は、QUARKUS-3434 を参照してください。
1.8.3. Windows 上の Snappy のネイティブライブラリーが見つからない リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、Windows 上で Snappy 圧縮ライブラリーを使用するアプリケーションを実行すると、ネイティブライブラリーが見つからないためエラーが発生します。
Windows 環境で Snappy を使用してデータを圧縮しようとすると、次の例のようなエラーメッセージが表示される場合があります。
エラーメッセージの例
... org.eclipse.microprofile.reactive.messaging.Message$5@1e8dc267 from channel 'test' was not sent to Kafka topic 'test' - nacking message: org.apache.kafka.common.KafkaException: org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Windows and os.arch=x86_64 ...
...
org.eclipse.microprofile.reactive.messaging.Message$5@1e8dc267 from channel 'test' was not sent to Kafka topic 'test' - nacking message: org.apache.kafka.common.KafkaException: org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Windows and os.arch=x86_64
...
回避策: 現時点では回避策はありません。この問題は今後のリリースで解決される予定です。
詳細は、QUARKUS-5983 を参照してください。
1.8.4. Mandrel 23.1 でネイティブイメージのビルドが断続的に失敗し、到達不能型エラーが発生する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、ヒープスナップショット検証エラーが原因で、Mandrel 23.1 ランタイムを使用したネイティブイメージのビルドが断続的に失敗する可能性があります。
ビルドプロセスは、型が到達可能としてマークされていないことを示すエラーで失敗します。
AnalysisType<... reachable: false>
AnalysisType<... reachable: false>
これらのエラーは一貫しておらず、異なるアプリケーション間で発生する可能性があります。それらは管理された環境において確実に再現されていません。
エラーの例 1
com.oracle.graal.pointsto.util.AnalysisError: The heap snapshot verifier discovered a type not marked as reachable: AnalysisType<VMOption$Origin[] -> HotSpotType<[Lcom/sun/management/VMOption$Origin;, resolved>, allocated: false, inHeap: false, reachable: false> at com.oracle.graal.pointsto.heap.HeapSnapshotVerifier$ScanningObserver.ensureTypeScanned(HeapSnapshotVerifier.java:332) ...
com.oracle.graal.pointsto.util.AnalysisError: The heap snapshot verifier discovered a type not marked as reachable:
AnalysisType<VMOption$Origin[] -> HotSpotType<[Lcom/sun/management/VMOption$Origin;, resolved>, allocated: false, inHeap: false, reachable: false>
at com.oracle.graal.pointsto.heap.HeapSnapshotVerifier$ScanningObserver.ensureTypeScanned(HeapSnapshotVerifier.java:332)
...
エラーの例 2
AnalysisType<MemoryType[] -> HotSpotType<[Ljava/lang/management/MemoryType;, resolved>, allocated: false, inHeap: false, reachable: false> AnalysisType<HotSpotDiagnosticMXBean$ThreadDumpFormat[] -> HotSpotType<[Lcom/sun/management/HotSpotDiagnosticMXBean$ThreadDumpFormat;, resolved>, allocated: false, inHeap: false, reachable: false>
AnalysisType<MemoryType[] -> HotSpotType<[Ljava/lang/management/MemoryType;, resolved>, allocated: false, inHeap: false, reachable: false>
AnalysisType<HotSpotDiagnosticMXBean$ThreadDumpFormat[] -> HotSpotType<[Lcom/sun/management/HotSpotDiagnosticMXBean$ThreadDumpFormat;, resolved>, allocated: false, inHeap: false, reachable: false>
エラーの例 3
AnalysisType<MemoryType[] -> HotSpotType<[Ljava/lang/management/MemoryType;, resolved>, allocated: false, inHeap: false, reachable: false>
AnalysisType<MemoryType[] -> HotSpotType<[Ljava/lang/management/MemoryType;, resolved>, allocated: false, inHeap: false, reachable: false>
回避策: ネイティブイメージのビルドを再試行します。問題は断続的に発生するため、次回の試行ではビルドが成功する可能性があります。
この問題は今後のリリースで解決される予定です。
詳細は、MANDREL-332 を参照してください。
1.8.5. OpenTelemetry: トレーシングが無効でメトリクスが有効になっている場合、開発モードの再読み込みに失敗する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、application.properties ファイルに次のプロパティーが設定されている場合、quarkus-opentelemetry エクステンションを使用するアプリケーションは開発モードで再起動しません。
-
quarkus.otel.traces.enabled=false -
quarkus.otel.metrics.enabled=true
再読み込みの試行中に、Quarkus は UnsatisfiedResolutionException を出力します。
エラーメッセージの例
jakarta.enterprise.inject.UnsatisfiedResolutionException: No bean found for required type [class io.quarkus.opentelemetry.runtime.tracing.DelayedAttributes] and qualifiers [[@jakarta.enterprise.inject.Any()]]
jakarta.enterprise.inject.UnsatisfiedResolutionException: No bean found for required type [class io.quarkus.opentelemetry.runtime.tracing.DelayedAttributes] and qualifiers [[@jakarta.enterprise.inject.Any()]]
回避策
現時点で使用できる回避策はありません。この問題は今後のリリースで解決される予定です。
1.8.6. Quarkus CLI が TLS レジストリー CLI プラグインを検出できない リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.15 では、Quarkus CLI の TLS レジストリーサポートを有効にする quarkus-tls-registry-cli プラグインが導入されました。
ただし、開発ツールは現在、maven.repository.redhat.com でホストされている Quarkus CLI プラグインを検出しません。その結果、Quarkus CLI はデフォルトでは TLS レジストリー CLI プラグインを解決できません。
この問題が発生すると、CLI は次の出力のようなエラーを返します。
[jbang] [ERROR] Could not resolve dependencies: The following artifacts could not be resolved: io.quarkus:quarkus-tls-registry-cli:jar:3.20.2.SP1-redhat-00003 (absent): Could not find artifact io.quarkus:quarkus-tls-registry-cli:jar:3.20.2.SP1-redhat-00003 in central (https://repo1.maven.org/maven2/)
[jbang] [ERROR] Could not resolve dependencies: The following artifacts could not be resolved: io.quarkus:quarkus-tls-registry-cli:jar:3.20.2.SP1-redhat-00003 (absent): Could not find artifact io.quarkus:quarkus-tls-registry-cli:jar:3.20.2.SP1-redhat-00003 in central (https://repo1.maven.org/maven2/)
回避策: Quarkus CLI がプラグインを解決できるようにするには、https://maven.repository.redhat.com/ga/ にある Red Hat Maven リポジトリーを使用するように JBang を設定します。
次のいずれかの方法を使用できます。
次の内容を含む
jbang.propertiesファイルを作成します。run.repos=central,https://maven.repository.redhat.com/ga/
run.repos=central,https://maven.repository.redhat.com/ga/Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定をローカルに適用するには、ファイルをプロジェクトのルートディレクトリーに配置します。設定をグローバルに適用するには、ファイルを
~/.jbangディレクトリーに配置します。JBang がすでにインストールされている場合は、次のコマンドを実行してリポジトリーをグローバルに設定します。
jbang config set run.repos central,https://maven.repository.redhat.com/ga/
jbang config set run.repos central,https://maven.repository.redhat.com/ga/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細は、QUARKUS-5183 を参照してください。
1.8.7. Quarkus CLI が Red Hat build of Quarkus プラットフォームバージョンのみを更新する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、更新コマンドを実行すると、Red Hat build of Quarkus プラットフォーム (com.redhat.quarkus.platform) に含まれる BOM のみが更新されます。これらには、quarkus-camel-bom と quarkus-cxf-bom (リリースの一部である場合)、quarkus-qpid-jms-bom、quarkus-operator-sdk-bom などの BOM が含まれます。
ただし、このコマンドは、アップストリームコミュニティーリリースに関連付けられた BOM バージョンを更新しません。プロジェクトに Red Hat build of Quarkus とアップストリーム BOM の両方が含まれている場合、この問題により、Quarkus とアップストリーム BOM の組み合わせに互換性がなくなる可能性があります。
更新コマンドの例
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.20.2.SP1-redhat-00003:update -Dmaven.repo.local=<path-to-local-repo>
$ mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.20.2.SP1-redhat-00003:update -Dmaven.repo.local=<path-to-local-repo>
問題のある pom.xml ファイルの例
- 1
- バージョンは更新されていません。
回避策: バージョン番号を手動で更新します。
詳細は、QUARKUS-5185 を参照してください。
1.8.8. REST クライアント: 重複した Vert.x コンテキストでコールバックが実行されると、Hibernate Reactive セッションが失われる リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、Mutiny タイプを返す非同期 REST クライアントで Hibernate Reactive を使用すると、現在の Hibernate Reactive セッションまたはトランザクションが失われる可能性があります。
これは、親の初期コンテキストをコピーしない新しい Vert.x コンテキストで、ユーザーコールバックが呼び出されるために発生します。その結果、コールバックはセッションまたはトランザクションが存在しないために失敗するか、または暗黙的に失敗し、エンティティーの変更をデータベースにフラッシュしない可能性があります。変更は、意図した外部トランザクションではなく、新しいトランザクションにフラッシュされる可能性もあります。
回避策
現時点で使用できる回避策はありません。この問題は今後のリリースで解決される予定です。
1.8.9. mandrel-for-jdk-21-rhel8:23.1 および FIPS が有効になっているネイティブモードで、RSA 暗号の初期化により NPE がトリガーされる リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、quarkus/mandrel-for-jdk-21-rhel8:23.1 Red Hat build of Quarkus Native Builder イメージを使用して、FIPS 対応環境内でネイティブモードで RSA 暗号を初期化すると、NullPointerException (NPE) エラーが発生します。
この問題は、FIPS が有効になっているネイティブモードでのみ発生し、FIPS が無効になっているネイティブモードには影響しません。また、FIPS が有効になっている Red Hat build of OpenJDK を使用する場合、JVM モードには影響しません。
FIPS 対応環境ではネイティブモードはサポートされません。
エラーメッセージの例
2024-10-17 10:45:01,931 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /repro failed, error id: 9b1f5dbb-058b-4c9b-9377-f3acc0a6cba5-1: java.lang.RuntimeException: java.lang.NullPointerException
at org.acme.ReproResource.init(ReproResource.java:38)
...
2024-10-17 10:45:01,931 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /repro failed, error id: 9b1f5dbb-058b-4c9b-9377-f3acc0a6cba5-1: java.lang.RuntimeException: java.lang.NullPointerException
at org.acme.ReproResource.init(ReproResource.java:38)
...
回避策:
存在する場合は、
application.propertiesファイルから次のプロパティーを削除します。quarkus.security.security-providers=SunPKCS11
quarkus.security.security-providers=SunPKCS11Copy to Clipboard Copied! Toggle word wrap Toggle overflow ランタイムに
ReproResourceクラスを初期化するには、application.propertiesファイルに次のプロパティーを追加します。quarkus.native.additional-build-args=--initialize-at-run-time=org.acme.ReproResource
quarkus.native.additional-build-args=--initialize-at-run-time=org.acme.ReproResourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細は、MANDREL-245 を参照してください。
1.8.10. WebSockets Next: オープンイベント例外で接続エラーメトリクスが増加しない リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.20 では、websockets-next エクステンションを使用して、@WebSocket エンドポイントが @OnOpen ライフサイクルメソッドで例外をスローすると、次のメトリクスが増分されません。
-
quarkus_websockets_server_connections_opened_errors_total{uri=${ENDPOINT}} -
quarkus_websockets_client_connections_opened_errors_total{uri=${ENDPOINT}}
この動作は、サーバー側とクライアント側の両方の WebSocket 接続メトリクスに影響します。
回避策: 現時点では回避策はありません。この問題は今後のリリースで解決される予定です。
詳細は、QUARKUS-5977 を参照してください。