前のトピック: サーバでの名前解決: デッドロック次のトピック: デッドロックの回避: lookaside データベース


Sun Solaris での名前解決: デッドロック

Sun Solaris の名前解決では、nscd キャッシュにアクセスする必要があります。 nscd は、一般的なネーム サービス要求のキャッシュを提供するプロセスであり、 passwd、group、および hosts データベースのキャッシュを提供します。

このキャッシュは永続的ではありません。 passwd、group、および hosts データベースが変更されるか、存続期間スタンプの期限が過ぎると無効になります。

Sun Solaris の設定では、前のセクションで説明したように、デッドロックが発生する可能性があります。 以下の例では、CA ControlMinder と nscd プロセスが相互作用することにより、デッドロックが発生します。

  1. 名前解決では、CA ControlMinder が nscd キャッシュにアクセスします。
  2. nscd プロセスによって、そのキャッシュが古すぎると判断されることがあります。 この場合、nscd は、(ローカルまたはサーバ上の)passwd、group、および hosts データベースにアクセスして情報を更新しようとします。
  3. これらのデータベースへのアクセス要求は、カーネル拡張機能によってインターセプトされます。 CA ControlMinder のプロセスでは要求が生成されないため、要求は seosd の決定を待つキューに格納されます。 ただし、seosd はまだその前の要求を処理中であるため、要求を許可するかどうかを決定できません。 最初の要求によって、次の要求が生成され、デッドロックが作成されます。