Red Hat Training

A Red Hat training course is available for RHEL 8

5.2. バグ修正

本パートでは、ユーザーに大きな影響を及ぼしていた Red Hat Enterprise Linux 8.0 のバグで修正されたものを説明します。

5.2.1. デスクトップ

PackageKit が rpm パッケージで動作可能

今回の更新で、rpm パッケージでの操作への対応が PackageKit に追加されました。

(BZ#1559414)

5.2.2. グラフィックインフラストラクチャー

QEMU が 8 バイトの ggtt エントリーを正しく処理しない

QEMU が、8 バイトの ggtt エントリーの書き込みを、連続した 4 バイトの書き込みに分割することがあります。これらの部分的な書き込みは、それぞれ別々のホストの ggtt を発生させます。2 つの ggtt 書き込みが不適切に結合される場合があります。したがって、マシンアドレスへの変換に失敗し、エラーログが発生します。

(BZ#1598776)

5.2.3. ID 管理

Enterprise Security Client が、トークン検出に opensc ライブラリーを使用

Red Hat Enterprise Linux 8.0 は、スマートカードの opensc ライブラリーにのみ対応します。今回の更新で、Enterprise Security Client (ESC) は、削除された coolkey ライブラリーの代わりに opensc を使用してトークンを検出します。その結果、アプリケーションで、対応しているトークンを正しく検出します。

(BZ#1538645)

証明書システムが、デバッグログのローテートに対応

以前は、証明書システムが、ログローテーションに対応しないカスタムのロギングフレームワークを使用していました。これにより、/var/log/pki/instance_name/ca/debug などのデバッグログが無限に大きくなります。今回の更新で、証明書システムは、ログローテーションに対応する java.logging.util フレームワークを使用します。これにより、/var/lib/pki/instance_name/conf/logging.properties ファイルでログローテーションを設定できます。

ログローテーションの詳細は、java.util.logging パッケージのドキュメントを参照してください。

(BZ#1565073)

証明書システムが、サービスの起動時に SetAllPropertiesRule 操作の警告をログに記録しなくなる

以前は、証明書システムは、サービスの開始時に /var/log/messages ログファイルの SetAllPropertiesRule 操作で警告を記録していました。問題が修正され、上記の警告は記録されなくなりました。

(BZ#1424966)

Certificate System KRA クライアントは、鍵要求 の応答を正しく解析する

以前は、証明書システムが新しい JSON ライブラリーに切り替えていました。その結果、特定のオブジェクトのシリアライズが異なり、Python の 鍵回復機関 (KRA) クライアントが、鍵要求 の応答を解析できませんでした。クライアントは、古い JSON ライブラリーと新しい JSON ライブラリーの両方を使用した応答に対応するように修正されました。これにより、Python KRA クライアントは キー要求 応答を正しく解析します。

(BZ#1623444)

5.2.4. コンパイラーおよび開発ツール

GCC が範囲外のアクセスに関する誤検出警告を生成しなくなる

以前は、最適化レベルのオプション -O3 でコンパイルする際に、コンパイルしたコードがこれを含まない場合でも、GNU コンパイラーコレクション (GCC) が範囲外のアクセスに関する誤検出の警告を返すことがありました。最適化が修正され、GCC が誤検出警告を表示しないようになりました。

(BZ#1246444)

ltrace が大きな構造を正しく表示する

以前は、ltrace ツールが、関数から返される大きな構造を正しく出力できませんでした。ltrace での大規模な構造の処理が改善され、正しく出力されるようになりました。

(BZ#1584322)

GCC 組み込み関数 __builtin_clz が、IBM Z で正しい値を返す

以前は、IBM Z アーキテクチャーの FLOGR 命令が、GCC コンパイラーにより誤って省略されていました。これにより、この命令を使用する __builtin_clz 関数は、GCC オプション -funroll-loops でコードがコンパイルされると、誤った結果が返される場合があります。このバグは修正され、関数で正しい結果が提供されるようになりました。

(BZ#1652016)

GDB は、バッチモードで最後のコマンドが失敗した場合に、ゼロ以外の終了ステータスを提供

以前は、バッチモードで実行する際に、コマンド内のエラーに関係なく、GDB が常にステータス 0 で終了していました。したがって、コマンドが成功したかどうかを確認できませんでした。この動作が変更され、最後のコマンドでエラーが発生すると、GDB がステータス 1 で終了するようになりました。これにより、すべてのコマンドが実行する前の動作との互換性が維持されるようになりました。したがって、GDB バッチモードの実行が成功したかどうかを判断できるようになりました。

(BZ#1491128)

5.2.5. ファイルシステムおよびストレージ

印刷レベルを高くしても、iscsiadm が突然終了しなくなる

以前は、--print オプションまたは -P オプションで 0 を超える出力レベルを指定すると、iscsiadm ユーティリティーが突然終了していました。この問題は修正され、すべての印刷レベルが期待どおりに機能するようになりました。

(BZ#1582099)

multipathd が、パスの WWID を取得できない場合に、パスを無効にしない

multipathd サービスは、以前は、パスの WWID の取得に失敗したことを、空の WWID の取得として処理していました。multipathd がパスの WWID を取得できない場合は、そのパスが無効になる可能性がありました。

今回の更新で、変更したかどうかを確認する際に WWID を取得できないと、multipathd は引き続き古い WWID を使用します。

したがって、WWID が変更したかどうかを確認する際に multipathd が WWID を取得できない場合にパスが無効になることがなくなりました。

(BZ#1673167)

5.2.6. 高可用性およびクラスター

新しい /etc/sysconfig/pcsd オプションにより、クライアントが起動する SSL/TLS 再ネゴシエーションの拒否

サーバーで TLS 再ネゴシエーションを有効にすると、クライアントが、新しいハンドシェイクを開始する再ネゴシエーション要求を送信できるようになります。ハンドシェイクの計算要件は、クライアントよりもサーバーの方が高くなります。これにより、サーバーが DoS 攻撃に対して脆弱になります。今回の修正で、/etc/sysconfig/pcsd 設定ファイルに PCSD_SSL_OPTIONS を設定すると、再ネゴシエーションを拒否する OP_NO_RENEGOTIATION オプションを受け付けるようになりました。ただし、クライアントは、引き続き、すべての接続でハンドシェイクを実行して、サーバーへの接続を複数開くことができます。

(BZ#1566430)

削除されたクラスターノードがクラスターのステータスに表示されない

以前は、pcs cluster node remove コマンドでノードが削除されると、削除したノードは pcs status ディスプレイの出力に表示されたままになります。この修正により、削除されたノードはクラスターのステータスには表示されなくなりました。

(BZ#1595829)

フェンスエージェントが、新しい優先パラメーター名または非推奨のパラメーター名のいずれかを使用して設定可能に

古いパラメーター名は非推奨として引き続き対応していますが、フェンスエージェントパラメーター名の多くが変更になりました。以前は、--force オプションと併用しないと、pcs で新しいパラメーターを設定できませんでした。この修正により、pcs は、非推奨パラメーターへの対応を維持しながら、名前を変更したフェンスエージェントパラメーターに対応するようになりました。

(BZ#1436217)

pcs コマンドが、クラスターの表示用に XML ステータスを正しく読み込むようになる

pcs コマンドは、crm_mon ユーティリティーを実行し、XML 形式のクラスターのステータスを取得します。crm_mon ユーティリティーは、標準出力に XML を出力し、標準エラー出力に警告を出力します。以前は、pcs では 1 つのストリームで XML と警告が混在していたため、これを XML として解析できませんでした。この修正により、pcs で標準出力とエラー出力が分離し、クラスターの XML ステータスの読み取りが期待どおりに機能するようになりました。

(BZ#1578955)

既存のクラスターのノードを持つ新規クラスターを作成する際に、クラスターを破棄することが非推奨に

以前は、pcs cluster setup コマンドを実行する場合や、Web UI の pcsd でクラスターを作成する場合に、ユーザーが既存のクラスターからノードを指定すると、pcs がそれをエラーとして報告し、そのノードでクラスターを破棄することを推奨していました。したがって、ノードでクラスターを破棄した場合に、ノードが残りのノードに含まれていたため、クラスターを分割しても、破棄されたノードがクラスターの一部とみなされていました。この修正により、クラスターからノードを削除することが推奨され、クラスターを破損することなく問題に対応する方法がより的確に示されるようになります。

(BZ#1596050)

pcs コマンドが対話式に認証情報を要求しなくなる

root 以外のユーザーが root パーミッションを必要とする pcs コマンドを実行すると、pcs はローカルで実行している pcsd デーモンに接続し、そのデーモンにそのコマンドを渡します。これは、root 権限で pcsd デーモンを実行し、コマンドを実行することができるためです。以前は、ユーザーがローカルの pcsd デーモンで認証されていないと、pcs がユーザー名とパスワードを対話的に要求していました。これはユーザーが混乱し、pcs を実行しているスクリプトで必要とされる特別な処理です。この修正では、ユーザーが認証されないと、pcs がエラーで終了し、何を実行するか (root で pcs を実行するか、新しい pcs client local-auth コマンドを使用して認証する) が表示されていました。このため、pcs コマンドが対話的に認証情報を要求せず、ユーザーエクスペリエンスが改善されます。

(BZ#1554310)

crypto-policiesFUTURE に設定されていると、pcsd デーモンがデフォルトの自己生成 SSL 証明書で開始

crypto-policiesFUTURE に設定するには、SSL 証明書の RSA 鍵の長さが 3072b 以上である必要があります。以前は、このポリシーが 2048b 鍵で SSL 証明書を生成するため、このポリシーを設定すると pcsd デーモンが起動しませんでした。今回の更新で、pcsd が自己生成した SSL 証明書の鍵のサイズが 3072b に拡大し、pcsd がデフォルトの自己生成 SSL 証明書で起動するようになりました。

(BZ#1638852)

ネットワークの準備ができると pcsd サービスが開始するようになる

以前は、ユーザーが特定の IP アドレスにバインドするように pcsd を設定すると、システムの起動時に pcsd が起動しようとしたときにそのアドレスの準備が間に合わず、pcsd が開始できなかったため、pcsd を手動で起動する必要がありました。今回の修正で、pcsd.servicenetwork-online.target に依存するようになります。これにより、ネットワークが準備され、IP アドレスにバインドすると、pcsd が起動します。

(BZ#1640477)

5.2.7. ネットワーク

弱い TLS アルゴリズムが glib-networking に許可されなくなる

以前は、glib-networking パッケージが、RHEL 8 のシステム全体の暗号化ポリシーと互換性がありませんでした。したがって、glib ライブラリーをネットワークに使用するアプリケーションでは、管理者が意図しているアルゴリズムよりも弱いアルゴリズムを使用した TLS (Transport Layer Security) 接続が許可される可能性があります。今回の更新で、システム全体の暗号化ポリシーが適用され、ネットワークに glib を使用するアプリケーションでは、ポリシーに従って許可される TLS 接続のみが許可されます。

(BZ#1640534)

5.2.8. セキュリティー

SELinux ポリシーにより、iscsiuio プロセスが検出ポータルに接続可能に

以前は、SELinux ポリシーは iscsiuio プロセスへの制約が多すぎて、このプロセスが mmap システムコールを使用して /dev/uio* デバイスにアクセスできませんでした。これにより、検出ポータルへの接続に失敗していました。今回の更新で、足りないルールが SELinux ポリシーに追加され、上記のシナリオで期待どおりに iscsiuio プロセスが機能するようになりました。

(BZ#1626446)

5.2.9. サブスクリプション管理

dnf および yum が、 subscription-manager の値に関係なくリポジトリーにアクセス可能に

以前は、dnf コマンドまたは yum コマンドが、subscription-manager サービスが追加した URL の https:// 接頭辞を無視していました。更新した dnf コマンドまたは yum コマンドは、無効な https:// の URL を無視しません。したがって、dnfyum はリポジトリーにアクセスできませんでした。この問題を解決するには、新しい設定変数 proxy_scheme/etc/rhsm/rhsm.conf ファイルに追加され、値を http または https に設定できます。値を指定しないと、subscription-manager がデフォルトで、より一般的に使用される http を設定します。

プロキシーが http を使用すると、ほとんどの場合は /etc/rhsm/rhsm.conf で設定を変更しないようにする必要があります。プロキシーが https を使用する場合は、proxy_scheme の値を https に更新する必要があります。いずれの場合も、ユーザーは subscription-manager repos --list コマンドを実行するか、rhsmcertd デーモンプロセスが /etc/yum.repos.d/redhat.repo を適切に再生成するまで待機する必要があります。

(BZ#1654531)

5.2.10. 仮想化

Azure での一時ディスクのマウントが、より確実に機能するようになる

以前は、Microsoft Azure プラットフォームで実行している仮想マシンへの一時ディスクのマウントは、仮想マシンが停止 (割り当て解除) になって起動すると、失敗していました。今回の更新で、上記の状況で、再接続したディスクが正しく処理され、問題が発生しないようにします。

(BZ#1615599)