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 を取得できない場合にパスが無効になることがなくなりました。
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-policies
が FUTURE
に設定されていると、pcsd
デーモンがデフォルトの自己生成 SSL 証明書で開始
crypto-policies
を FUTURE
に設定するには、SSL 証明書の RSA 鍵の長さが 3072b 以上である必要があります。以前は、このポリシーが 2048b 鍵で SSL 証明書を生成するため、このポリシーを設定すると pcsd
デーモンが起動しませんでした。今回の更新で、pcsd
が自己生成した SSL 証明書の鍵のサイズが 3072b に拡大し、pcsd
がデフォルトの自己生成 SSL 証明書で起動するようになりました。
(BZ#1638852)
ネットワークの準備ができると pcsd
サービスが開始するようになる
以前は、ユーザーが特定の IP アドレスにバインドするように pcsd
を設定すると、システムの起動時に pcsd
が起動しようとしたときにそのアドレスの準備が間に合わず、pcsd
が開始できなかったため、pcsd
を手動で起動する必要がありました。今回の修正で、pcsd.service
が network-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 を無視しません。したがって、dnf
と yum
はリポジトリーにアクセスできませんでした。この問題を解決するには、新しい設定変数 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
を適切に再生成するまで待機する必要があります。
5.2.10. 仮想化
Azure での一時ディスクのマウントが、より確実に機能するようになる
以前は、Microsoft Azure プラットフォームで実行している仮想マシンへの一時ディスクのマウントは、仮想マシンが停止 (割り当て解除) になって起動すると、失敗していました。今回の更新で、上記の状況で、再接続したディスクが正しく処理され、問題が発生しないようにします。
(BZ#1615599)