第6章 主なバグ修正
本章では、ユーザーに大きな影響を与える Red Hat Enterprise Linux 7.9 で修正されたバグを説明します。
6.1. 認証および相互運用性
Directory Server への SASL バインドの使用時にデッドロックの発生を回避するようになりました
以前のバージョンでは、Directory Server への SASL バインド時に、接続プロセス中に変更されたコールバックの使用が試行される場合がありました。そのため、デッドロックが発生し、Directory Server が突然終了することがありました。今回の更新では、Directory Server で接続ロックが使用されるようになったため、IO レイヤーおよびコールバックが使用中に変更されることがなくなりました。その結果、SASL バインドの使用時にデッドロックが発生しなくなりました。
389-ds-base
パッケージに、Directory Server ユーザーが所有するディレクトリーに必要なパーミッションを設定されるようになりました
Directory Server ユーザーが所有するファイルシステムのディレクトリーに適切なパーミッションがない場合は、Directory Server ユーティリティーにより、パーミッションが適切に調整されます。ただし、これらのパーミッションが RPM インストール時に設定されたものと異なる場合、rpm -V 389-ds-base
コマンドを使用した RPM の検証は失敗に終わっていました。今回の更新で、RPM のパーミッションが修正されました。その結果、389-ds-base
パッケージの検証で、パーミッションの誤りが報告されなくなりました。
IPv6 を含む ACI での ip
バインディングルール使用時の、Directory Server でのメモリーリークを修正
Directory Server の Access Control Instruction (ACI) コンテキストは接続にアタッチされ、IPv4 プロトコルと IPv6 プロトコルの両方の構造を持ちます。以前は、クライアントが接続を閉じると、Directory Server では IPv4 構造とコンテキストのみが削除されていました。そのため、管理者が ip
バインディングルールを使用して ACI を設定すると、Directory Server で IPv6 構造のメモリーリークが発生していました。今回の更新で、Directory Server では接続終了時に IPv4 と IPv6 の両方の構造が解放されるようになりました。その結果、上述のシナリオで Directory Server のメモリーリークが発生しなくなりました。
Ip
バインディングルールを含む ACI 使用時の、Directory Server でのメモリーリークを修正
Directory Server の ACI (Access Control Instruction) に ip
バインディングルールが含まれる場合は、Directory Server では ACI の評価中に ip
キーワードの値が参照として保存されます。以前のリリースでは、評価が完了しても、Directory Server で ip
の値が解放されませんでした。そのため、Directory Server では、ip
バインディングルールを含む ACI を評価するたびに、約 100 バイトのメモリーがリークしていました。今回の更新で、Directory Server では接続ごとに構造の ip
値が記録され、接続が閉じられると構造が解放されるようになりました。その結果、上述のシナリオで Directory Server のメモリーリークが発生しなくなりました。
Directory Server による rootdn-allow-ip
および rootdn-deny-ip
パラメーターのワイルドカードの拒否を修正
以前のリリースでは、管理者が cn=RootDN Access Control Plugin,cn=plugins,cn=config
エントリーの rootdn-allow-ip
または rootdn-deny-ip
パラメーターでワイルドカードを設定しようとすると、Directory Server でその値が拒否されていました。今回の更新で、上記のパラメーターに許可/拒否される IP アドレスを指定する際にワイルドカードを使用できるようになりました。
Directory Server で、システム時間の取得に失敗した場合や時間差が大きすぎる場合に更新操作を拒否
以前のバージョンでは、time() システム関数の呼び出しに失敗した場合、もしくは関数が予期せぬ値を返した場合に、Directory Server の変更シーケンス番号 (CSN) が破損する可能性がありました。結果として、管理者は環境内のすべてのレプリカを再初期化する必要がありました。今回の更新で、time() 関数が失敗した場合は Directory Server で更新操作が拒否されるようになったため、上述のシナリオにおいて、破損した CSN が Directory Server で生成されることはなくなりました。
時間差が 1 日を超える場合、Directory Server では INFO - csngen_new_csn - Detected large jump in CSN time
メッセージが /var/log/dirsrv/slapd-<instance_name>/error
ファイルに記録されます。ただし、Directory Server では引き続き CSN が作成され、更新操作は拒否されません。
スキーマ更新中の Directory Server のハングを回避
以前のリリースでは、検索操作と変更操作の負荷が混在するときに Directory Server スキーマを更新すると、すべての検索操作と変更操作がブロックされ、Directory Server がハングした状況になりました。今回の更新で、スキーマ更新時のミューテックスロックが調整されました。その結果、スキーマの更新中に Directory Server がハングしなくなりました。
間接的な CoS 定義を使用時の、Directory Server でのメモリーリークを修正
以前のバージョンでは、間接的な CoS (Class of Service) 定義を処理すると、Directory Server では、間接 CoS 定義を使用する検索操作ごとにメモリーリークが発生していました。今回の更新で、Directory Server は、処理後にデータベースエントリーに関連する CoS 内部構造をすべて解放するようになりました。その結果、間接的な CoS 定義の使用時にサーバーでのメモリーリークがなくなりました。
SSSD を使用する AD クライアントにパスワード有効期限の通知が送信されます
以前のバージョンでは、SSSD を使用する Active Directory クライアント (IdM 以外) には、パスワード有効期限の通知が送信されませんでした。これは Kerberos 認証情報を取得するために、SSSD インターフェイスに最近変更が加えられたためです。
Kerberos インターフェイスが更新され、有効期限の通知が正しく送信されるようになりました。
KDC で LDAP バックエンドからパスワード有効期間のポリシーを正常に適用されるようになりました
以前のバージョンは、Kerberos LDAP バックエンドにより、パスワードポリシーが正しく適用されていなかったため、IPA 以外の Kerberos Distribution Center (KDC) ではパスワードの最大有効期間を保証できませんでした。今回の更新で、Kerberos LDAP バックエンドが修正され、パスワードの有効期間が期待どおりに機能するようになりました。
nuxwdog
が有効な場合に、pkidaemon
ツールが PKI インスタンスの正しいステータスを報告するようになりました。
pkidaemon status
コマンドは、nuxwdog
ウォッチドッグが有効な場合に、PKI サーバーインスタンスのステータスが正しく報告されませんでした。今回の更新で、nuxwdog
が有効かどうかに拘らず、pkidaemon
は PKI サーバーの正しいステータスを検出して報告します。