N1 Grid Engine 6 ユーザーズガイド
  Искать только в названиях книг
Просмотреть эту книгу в:
Загрузить это руководство в формате PDF (2553 КБ)

第 6 章 エラーメッセージと障害追跡

この章では、Grid Engine システムのエラーメッセージ処理について説明し、一般的な各問題の解決方法のヒントを紹介します。

ソフトウェアによるエラーレポートの検出方法

Grid Engine ソフトウェアは、メッセージを特定のファイルに記録したり、電子メールを送信したり、またはこの両方を行って、エラーと警告を報告します。ログファイルには、メッセージ ファイルとジョブ STDERR 出力が含まれます。

ジョブが開始されると、ジョブ スクリプトの標準エラー (STDERR) 出力がファイルにリダイレクトされます。デフォルトのファイル名とファイルの保存場所を使用するか、qsub コマンドのオプションを使用してファイル名と場所を指定することができます。詳細は、Grid Engine システムのマニュアルページを参照してください。

sge_qmastersge_schedd、および sge_execd には、個別のメッセージファイルがあります。ファイルの名前は同じで、messages です。sge_qmaster ログファイルは、マスタースプールディレクトリに保存されます。sge_schedd メッセージ ファイルは、スケジューラスプールディレクトリに保存されます。実行デーモンのログファイルの場所は、実行デーモンのスプールディレクトリです。スプールディレクトリについては、『N1 Grid Engine 6 インストールガイド』「ルートディレクトリの下のスプールディレクトリ」を参照してください。

各メッセージは、ファイル内の 1 行を占めます。各メッセージは、縦線記号 (|) で区切られた 5 つのコンポーネントに分割されます。

    メッセージのコンポーネントは、次のとおりです。

  1. 1 番目のコンポーネントは、メッセージのタイムスタンプです。

  2. 2 番目のコンポーネントは、メッセージを生成する Grid Engine システムデーモンを指定します。

  3. 3 番目のコンポーネントは、デーモンが動作しているホストの名前です。

  4. 4 番目は、メッセージの種類です。メッセージの種類は、次のいずれかです。

    • 通知の N (情報提供が目的)

    • 情報の I (情報提供が目的)

    • 警告の W

    • エラーの E (エラー状態の検出)

    • 重大の C (プログラムの異常終了になる可能性あり)

    クラスタ構成で loglevel パラメータを使用して、グローバルベースまたはローカルベースで、記録するメッセージの種類を指定してください。

  5. 5 番目のコンポーネントは、メッセージのテキストです。


    注 –

    なんらかの理由でエラーログファイルにアクセスできない場合、Grid Engine システムは、対応するホストのファイル /tmp/sge_qmaster_messages /tmp/sge_schedd_messages または /tmp/sge_execd_messages にエラーメッセージを記録しようとします。


状況によっては、Grid Engine システムは、電子メールでユーザーか管理者、またはその両方にエラーイベントを通知します。Grid Engine システムによって送信される電子メールメッセージには、メッセージ本文は含まれません。メッセージのテキストは、メールの件名フィールドにすべて含まれます。

さまざまなエラーコードまたは終了コードの意味

次の表に、ジョブ関連のさまざまなエラーコードまたは終了コードの意味を示します。これらのコードは、あらゆる種類のジョブに該当します。

表 6–1 ジョブ関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

ジョブスクリプト 

成功 

 

99 

再度キューに入れる 

 

Rest 

成功。アカウンティングファイルの終了コード 

 

 

 

プロローグ/エピローグ 

成功 

 

99 

再度キューに入れる 

 

Rest 

キューのエラー状態。ジョブは再度キューに入れられる 

次の表に、並列環境 (PE) 構成関のジョブのエラーコードまたは終了コードの意味を示します。

表 6–2 並列環境関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

pe_start 

成功 

 

Rest 

キューをエラー状態に設定。ジョブは再度キューに入れられる 

 

 

 

pe_stop 

成功 

 

Rest 

キューをエラー状態に設定。ジョブは再度キューには入れられない 

次の表に、キュー構成関連のジョブのエラーコードまたは終了コードの意味を示します。これらのコードは、対応する方法が書き換えられた場合にのみ有効です。

表 6–3 キュー関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

ジョブ開始 

成功 

 

Rest 

成功。他の意味は特になし 

 

 

 

一時停止 

成功 

 

Rest 

成功。他の意味は特になし 

 

 

 

再開 

成功 

 

Rest 

成功。他の意味は特になし 

 

 

 

終了 

成功 

 

Rest 

成功。他の意味は特になし 

次の表に、チェックポイント設定関連のジョブのエラーコードまたは終了コードの意味を示します。

表 6–4 チェックポイント設定関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

チェックポイント 

成功 

 

Rest 

成功。ただし、カーネルチェックポイントの場合は、チェックポイントが成功しなかったことを意味する。 

 

 

 

移行 

成功 

 

Rest 

成功。ただし、カーネルチェックポイントの場合は、チェックポイントが成功しなかったことを意味する。移行は行われる。 

 

 

 

再開 

成功 

 

Rest 

成功。他の意味は特になし 

 

 

 

後処理 

成功 

 

Rest 

成功。他の意味は特になし 

正常に実行されたジョブに対して、qacct -j コマンドからの出力は、「failed」フィールドに「0」を示し、「exit_status」フィールドにジョブの終了ステータスを示します。ただし、シェパードがジョブを正常に実行できない場合があります。たとえば、epilog スクリプトが失敗したり、シェパードがジョブを開始できない場合があります。このような場合、「failed」フィールドは、次の表のコードの値のいずれかを表示します。

表 6–5 qacct -j failed フィールドコード

コード 

説明 

acctvalid 

ジョブに対する意味 

No failure 

ジョブは実行され、正常に終了された 

Presumably before job 

ジョブを開始できなかった 

Before writing config 

ジョブを開始できなかった 

Before writing PID 

ジョブを開始できなかった 

On reading config file 

ジョブを開始できなかった 

Setting processor set 

ジョブを開始できなかった 

Before prolog 

ジョブを開始できなかった 

In prolog 

ジョブを開始できなかった 

Before pestart 

ジョブを開始できなかった 

10 

In pestart 

ジョブを開始できなかった 

11 

Before job 

ジョブを開始できなかった 

12 

Before pestop 

ジョブは実行され、PE 停止手続きの呼び出し前に障害が発生した 

13 

In pestop 

ジョブは実行され、PE 停止手続きで障害が発生した 

14 

Before epilog 

ジョブは実行され、epilog スクリプトの呼び出し前に障害が発生した 

15 

In epilog 

ジョブは実行され、epilog 内で障害が発生した 

16 

Releasing processor set 

ジョブは実行され、プロセッサセットは解放できなかった 

24 

Migrating (checkpointing jobs) 

ジョブは実行され、移行される予定 

25

Rescheduling 

ジョブは実行され、再スケジューリングされる予定 

26 

Opening output file 

ジョブを開始できず、stderr/stdout ファイルを開けない 

27 

Searching requested shell 

ジョブを開始できず、シェルを検出できない 

28 

Changing to working directory 

ジョブを開始できず、エラーで開始ディレクトリへ移動した 

100 

Assumedly after job 

ジョブは実行され、信号によってジョブ終了させられた。 

「コード」の列には、「failed」フィールドの値が一覧表示されています。「説明」列には、qacct -j の出力で表示されるテキストが一覧表示されています。acctvalidt に設定されている場合、ジョブアカウンティングの値は有効です。acctvalidf に設定されている場合、アカウンティングレコードのリソース使用率は有効ではありません。「ジョブに対する意味」の列では、ジョブが実行されたのかどうかが示されています。

デバッグモードでの Grid Engine システムのプログラムの実行

重大なエラーが発生した場合に、問題の特定に十分な情報がエラー記録機構によって生成されないことがあります。このため、Grid Engine システムには、ほぼすべての補助プログラムとデーモンをデバッグモードで実行する機能が用意されています。デバッグのレベルは、提供される情報の量および深さに応じて異なります。デバッグのレベルは、0 から 10 の範囲で、10 はもっとも詳細な情報を提供するレベル、0 はデバッグ無効です。

デバッグレベルを設定するために、Grid Engine システムの配布には、.cshrc または .profile リソースファイルに対する拡張機能が用意されています。csh または tcsh ユーザーの場合は、ファイル sge-root/util/dl.csh が含まれています。sh または ksh ユーザーの場合は、対応するファイルの名前は sge-root/util/dl.sh です。標準のリソースファイルに、これらのファイルを取り込む必要があります。csh または tcsh のユーザーの場合は、.cshrc ファイルに次の行を含めます。


source sge-root/util/dl.csh

sh または ksh ユーザーの場合は、.profile ファイルに次の行を含めます。


. sge-root/util/dl.sh

いったんログアウトして、ログインし直すと、次のコマンドを使用してデバッグレベルを設定できます。


% dl level

level が 0 より大きい場合、Grid Engine システムコマンドを開始すると、トレース出力を STDOUT に書き込むようコマンドに強制します。トレース出力には、警告メッセージ、ステータスメッセージ、エラーメッセージ、および内部的に呼び出されたプログラムモジュールの名前が含まれます。メッセージには、ユーザーが指定するデバッグレベルに応じて、エラーの報告に役立つ行番号情報も含まれます。


注 –

デバッグトレースを監視するには、大きなサイズのスクロール行バッファーを持つウィンドウを使用する必要があります。たとえば、1000 行のスクロール行バッファーを使用します。



注 –

ウィンドウが xterm である場合は、xterm ログ記録機構を使用して、あとでトレース出力を調べることができます。


デバッグモードで Grid Engine システムデーモンの 1 つを実行すると、デーモンが端末接続を維持して、トレース出力を書き出します。こうした端末接続は、使用している端末エミュレーションの割り込み文字を入力することによって打ち切ることができます。たとえば、Control-C を使用します。

デバッグモードを無効にするには、デバッグレベルを 0 に戻します。

dbwriter デバッグレベルの設定

sgedbwriter スクリプトは、dbwriter プログラムを開始します。このスクリプトは、sge_root/dbwriter/bin/sgedbwriter に保存されています。sgedbwriter スクリプトは、dbwriter の構成ファイルである dbwriter.conf を読み取ります。この構成ファイルは、sge_root/cell /common/dbwriter.conf に保存されています。この構成ファイルは、dbwriter のデバッグレベルを設定します。以下に例を示します。


#
# デバッグレベル
# 有効な値: WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL
#
DBWRITER_DEBUG=INFO

dbwriter コマンドの –debug オプションを使用すると、dbwriter により作成されるメッセージの数を変更できます。通常は、デフォルトのデバッグレベルである info を使用してください。より詳細なデバッグレベルを使用すると、dbwriter によって出力されるデータの量が大幅に増加します。

次のデバッグレベルを指定できます。

warning

重大なエラーと警告のみが表示されます。

info

多数の情報メッセージが追加されます。info はデフォルトのデバッグレベルです。

config

たとえば規則の処理に関する、dbwriter 構成に関連する追加の情報が得られます。

fine

さらに多くの情報が作成されます。このデバッグレベルを選択すると、dbwriter によって実行されるすべての SQL 文が出力されます。

finer

デバッグ用に使用します。

finest

デバッグ用に使用します。

all

すべてのレベルの情報を表示します。デバッグ用に使用します。

問題の診断

Grid Engine システムには、問題の診断に役立ついくつかの報告手段が用意されています。次の節では、それらの使用方法を簡単に説明します。

保留中のジョブが振り分けられない

保留中のジョブが実行可能な状態であることが明らかであるにもかかわらず、振り分けられない場合があります。Grid Engine システムには、その理由を診断するために、qstat -j job-idqalter-w v job-id のユーティリティーとオプションのペアがあります。

  • qstat -j job-id

    有効である場合は、qstat -j job-id は最後にスケジューリングが行われたときに特定のジョブが振り分けられなかった理由のリストを示します。この監視は、有効または無効にすることができます。この監視機能は、schedd デーモンと qmaster との間の通信で望ましくないオーバーヘッドを引き起こす可能性があるため、無効にすることができます。sched_conf(5) のマニュアルページの schedd_job_info を参照してください。ID が 242059 のジョブに関する出力例を次に示します。


    % qstat -j 242059
    scheduling info: queue "fangorn.q" dropped because it is temporarily not available
    queue "lolek.q" dropped because it is temporarily not available
    queue "balrog.q" dropped because it is temporarily not available
    queue "saruman.q" dropped because it is full
    cannot run in queue "bilbur.q" because it is not contained in its hard queuelist (-q)
    
    cannot run in queue "dwain.q" because it is not contained in its hard queue list (-q)
    has no permission for host "ori"

    この情報は、schedd デーモンによって直接生成されます。この情報の生成では、クラスタの現在の使用率が考慮されます。この情報には、必要な情報が含まれないことがあります。たとえば、ほかのユーザーのジョブによってすべてのキュースロットがすでに占有されている場合、問題のジョブに関する詳細なメッセージは生成されません。

  • qalter -w v job-id

このコマンドは、基本的にジョブが振り分けられない理由を一覧表示します。この目的のため、ドライスケジューリングが実行されます。スロットを含めて消費可能なすべてのリソースが、そのジョブ用に完全に利用可能であるとみなされます。同様に、負荷値も変化するため、すべての負荷値は無視されます。

ジョブまたはキューがエラー状態 E と報告される

ジョブまたはキューのエラーが、qstat 出力で、大文字の E で示されます。

ジョブがエラー状態になるのは、Grid Engine システムがジョブを実行しようとして、そのジョブに固有の理由で実行に失敗した場合です。

キューがエラー状態になるのは、Grid Engine システムがジョブを実行しようとして、そのキューに固有の理由で実行が失敗した場合です。

Grid Engine システムには、ジョブ実行エラーが発生した場合に、ユーザーおよび管理者がその診断情報を収集するための一連の機能が用意されています。キューおよびジョブのエラーの状態のどちらも、原因はジョブの実行失敗にあります。そのため、診断の機能は両方の種類のエラー状態に適用できます。

  • ユーザー宛て中止メール。qsub -m a コマンドを使用してジョブが発行された場合は、-M user[@host] オプションで指定されたアドレスに中止メールが送信されます。中止メールには、ジョブのエラーに関する診断情報が含まれています。中止メールを情報源として使用することをお勧めします。

  • qacct アカウンティング。 中止メールが得られない場合は、qacct -j コマンドを実行できます。このコマンドによって、Grid Engine システムのジョブアカウンティング機能からジョブのエラーに関する情報を入手できます。

  • 管理者宛て中止メール。 管理者は、適切な電子メールアドレスを指定することによって、ジョブ実行時の問題に関する管理者宛てメールを送信するよう指示できます。sge_conf (5) のマニュアルページの administrator_mail を参照してください。管理者宛てのメールには、ユーザー宛ての中止メールよりも詳しい診断情報が含まれています。ジョブ実行エラーが頻繁に発生する場合に、管理者宛てメールを利用することをお勧めします。

  • messages ファイル。管理者宛てメールが得られない場合は、qmastermessages ファイルをまず調べてください。適切なジョブ ID を検索することによって、特定のジョブに関するエントリを見つけることができます。デフォルトのインストールでは、 qmaster messagesファイルは sge-root /cell/spool/qmaster/messages に保存されています。

    ジョブの起動元の execd デーモンのメッセージに、補足情報が含まれていることもあります。qacct -j job-id を使用して、ジョブの起動元のホストを確認し、sge-root/cell/spool/ host/messages でジョブ ID を検索してください。

一般的な問題の障害追跡

この節では、一般的な問題の原因の診断と対処に役立つ情報を説明します。

  • 問題 — ジョブの出力ファイルに「Warning: no access to tty; thus no job control in this shell...」というメッセージが出力される。

    • 考えられる原因 — 少なくとも 1 つのログインファイルに stty コマンドが含まれています。これらのコマンドが役立つのは、端末が存在する場合のみです。

    • 考えられる解決策 — バッチジョブは端末に関連付けられません。ログインファイルからすべての stty コマンドを削除するか、if 文で stty コマンドを囲む必要があります。 if 文は、処理の前に端末を確認する必要があります。次の例に if 文を示します。


      /bin/csh:
      stty -g             # 端末の状態を確認します。
      if ($status == 0)   # 端末が存在すれば、
      正常に終了します。
      <put all stty commands in here>
      endif
  • 問題 — ジョブの標準エラーログファイルに「`tty`: Ambiguous」というメッセージが出力される。しかし、ジョブスクリプトで呼び出されるユーザーのシェルには、tty に対する参照が存在しない。

    • 考えられる原因 — デフォルトでは、shell_start_modeposix_compliant です。このため、すべてのジョブスクリプトは、キュー定義で指定されたシェルで実行されます。スクリプトは、ジョブスクリプトの先頭行に指定されたシェルでは実行されません。

    • 考えられる解決策qsub コマンドに -S フラグを使用するか、shell_start_mode unix_behavior に変更してください。

  • 問題 — コマンド行からジョブスクリプトを実行できるが、qsub コマンドを使用して実行すると、ジョブスクリプトが失敗する。

    • 考えられる原因 — ジョブに対するプロセス数が制限されている可能性があります。制限が設定されているかどうかをテストするには、limitlimit -h 関数を実行するテストスクリプトを作成してください。シェルプロンプトから対話形式による方法と qsub コマンドを使用する方法で両方の関数を実行し、結果を比較します。

    • 考えられる解決策 — 構成ファイルから、シェルで制限を設けるすべてのコマンドを削除してください。

  • 問題 — 実行ホストから負荷 99.99 が報告される。

    1. 考えられる原因 — ホストで execd デーモンが動作していません。

      考えられる解決策 — 実行ホストで root になり、$SGE_ROOT/default/common/ 'rcsge' スクリプトを実行することによって execd デーモンを起動してください。

    2. 考えられる原因 — デフォルトドメインの指定に誤りがあります。

      考えられる解決策 — Grid Engine システムの管理者になって、qconf -mconf コマンドを実行し、default_domain 変数を none に変更してください。

    3. 考えられる原因qmaster ホストが認識している実行ホスト名と、その実行ホストが認識している自身の名前とが異なります。

      考えられる解決策 — 計算クラスタのホスト名の解決に DNS を使用している場合は、主ホスト名として絶対パスによるドメイン名 (FQDN) が返されるように /etc/hosts と NIS を構成してください。もちろん、168.0.0.1 myhost.dom.com myhost などの短い別名を定義して使用することができます。

      DNS を使用していない場合は、すべての /etc/hosts ファイルと NIS テーブルが、168.0.0.1 myhost.corp myhost または 168.0.0.1 myhost のように一致していることを確認してください。

  • 問題 — 次のメッセージのような警告が 30 秒ごとに cell /spool/host/messages に出力される。


    Tue Jan 23 21:20:46 2001|execd|meta|W|local
    configuration meta not defined - using global configuration

    しかし、cell/common/local_conf には、各ホスト用のファイルがあり、それぞれに FQDN が存在する。

    • 考えられる原因 — 使用しているマシン meta では、ホスト名解決でショート名が返されるのに対し、マスターマシンでは、FDQN 付きの meta が返されます。

    • 考えられる解決策 — この点に関して、/etc/hosts のすべてのファイルと NIS テーブルの間に矛盾がないようにしてください。この例では、ホスト meta/etc/hosts ファイルに、誤って次のようなテキストの行が含まれている可能性があります。

      168.0.0.1 meta meta.your.domain

      正しくは、この行は次のようにします。

      168.0.0.1 meta.your.domain meta.

  • 問題 — デーモンの messages ファイルに CHECKSUM ERRORWRITE ERROR、または READ ERROR というメッセージが出力される場合がある。

    • 考えられる原因 — 1 秒間隔で出力されるのでないかぎり、何もする必要はありません。一般的にこれらのメッセージは、1 日に 1 回から 30 回出力されます。

  • 問題 — ジョブが特定のキューで終了し、qmaster/messages に次のメッセージを返す。


    Wed Mar 28 10:57:15 2001|qmaster|masterhost|I|job 490.1
    finished on host exechost

    次に、実行ホストの exechost/messages ファイルには次のエラーメッセージが出力される。


    Wed Mar 28 10:57:15 2001|execd|exechost|E|can't find directory
    "active_jobs/490.1" for reaping job 490.1

    Wed Mar 28 10:57:15 2001|execd|exechost|E|can't remove directory
    "active_jobs/490.1": opendir(active_jobs/490.1) failed:
    Input/output error
    • 考えられる原因 — 自動マウントされる $SGE_ROOT ディレクトリがマウント解除されたため、sge_execd デーモンが現在の作業ディレクトリを失った可能性があります。

    • 考えられる解決策execd ホストにローカルのスプールディレクトリを使用してください。qmon または qconf コマンドを使用して、 execd_spool_dir パラメータを設定してください。

  • 問題qrsh ユーティリティーで対話型ジョブを発行すると、次のエラーメッセージが表示される。


    % qrsh -l mem_free=1G error: error: no suitable queues

    しかし、qsub コマンドを使用したバッチジョブの発行に対してキューは使用可能で、これらのキューは、qhost -l mem_free=1Gqstat -f -l mem_free=1G を使用して照会できる。

    • 考えられる原因 — 「error: no suitable queues」というメッセージ の原因は、qrsh などの対話型ジョブに対してデフォルトで有効になる submit の -w e オプションにあります。qrsh(1) のマニュアルページの -w e を参照してください。現在のクラスタ構成に従ってジョブが振り分け可能であるかどうかを qmaster が確実に判断できない場合、このオプションがあると、submit コマンドで問題が発生します。この仕組みの意図は、許可できないジョブ要求を事前に拒否することです。

    • 考えられる解決策 — この場合は、mem_free が消費可能リソースに設定されているにもかかわらず、ユーザーが各ホストで使用可能にするメモリーサイズを指定しなかったことが原因です。メモリー負荷値はそれぞれに異なるため、この検査ではメモリー負荷値は意図的に考慮されません。このため、クラスタ構成の一部としては表示されません。次のいずれかを行います。

      • qrsh のデフォルトオプションである -w e-w n オプションを使用して明示的に無効にすることでこの検査を全般的に省略する。このコマンドを sge-root/cell /common/cod_request に含めることもできます。

      • mem_free を消費可能リソースとして管理する場合は、qconf -me hostname を使用して、host_confcomplex_values にあるホストに対し mem_free の容量を指定する。

      • mem_free を消費可能リソースとして管理しない場合は、qconf -mc hostname を使用して、complex(5) の consumable 列で消費不可リソースに戻す。

  • 問題qrsh が自分が動作しているのと同じノードに振り分けない。このとき qsh シェルから次のようなメッセージが返される。


    host2 [49]% qrsh -inherit host2 hostname
    error: executing task of job 1 failed:
    
    host2 [50]% qrsh -inherit host4 hostname
    host4
    • 考えられる原因gid_range が十分ではないことが考えられます。gid_range には、1 つの数字ではなく範囲として定義してください。Grid Engine システムは、ホスト上の各ジョブに固有の grid を割り当てます。

    • 考えられる解決策gid_rangeqconf -mconf コマンドまたは QMON で調整してください。次のような範囲が考えられます。


      gid_range                 20000-20100
  • 問題 — 並列ジョブ内で使用すると qrsh -inherit -V が機能しない。次のメッセージが返される。


    cannot get connection to "qlogin_starter"
    • 考えられる原因 — この問題は入れ子にされた qrsh 呼び出しで発生します。問題の原因は -V オプションです。最初の qrsh -inherit 呼び出しでは、環境変数 TASK_ID が設定されます。TASK_ID は、並列ジョブ内で密統合されたタスクの ID です。2 番目の qrsh -inherit 呼び出しでは、このタスクの登録に環境変数を使用します。すでに実行中の最初のタスクと同じ ID を持つタスクを開始しようとするため、このコマンドは失敗します。

    • 考えられる解決策qrsh -inherit を呼び出す前に TASK_ID の設定を解除するか、-V ではなく -v オプションを使用してください。このオプションにより、実際に必要な環境変数だけがエクスポートされます。

  • 問題qrsh がまったく機能していないように見える。次のようなメッセージが返される。


    host2$ qrsh -verbose hostname
    local configuration host2 not defined - using global configuration
    waiting for interactive job to be scheduled ...
    Your interactive job 88 has been successfully scheduled.
    Establishing /share/gridware/utilbin/solaris64/rsh session
    to host exehost ...
    rcmd: socket: Permission denied
    /share/gridware/utilbin/solaris64/rsh exited with exit code 1
    reading exit code from shepherd ...
    error: error waiting on socket for client to connect: 
    Interrupted system call
    error: error reading return code of remote command
    cleaning up after abnormal exit of 
    /share/gridware/utilbin/solaris64/rsh
    host2$
    • 考えられる原因qrsh に対する権限が正しく設定されていません。

    • 考えられる解決策$SGE_ROOT/utilbin/ にある次のファイルの権限を確認してください (rlogin および rsh は、 setuid であり、かつ root に所有されている必要があることに注意してください)。

      -r-s--x--x 1 root root 28856 Sep 18 06:00 rlogin*

      -r-s--x--x 1 root root 19808 Sep 18 06:00 rsh*

      -rwxr-xr-x 1 sgeadmin adm 128160 Sep 18 06:00 rshd*


      注 –

      sge-root ディレクトリも setuid オプションで NFS マウントされている必要があります。sge-root が発行クライアントから nosuid でマウントされている場合、qrsh と関連するコマンドは機能しません。


  • 問題 – 分散 make を起動しようとすると、qmake が次のエラーメッセージを表示して終了する。


    qrsh_starter: executing child process
    qmake failed: No such file or directory
    • 考えられる原因 — Grid Engine システムは、実行ホストで qmake のインスタンスを起動します。Grid Engine システム環境 (特に PATH 変数) がユーザーのシェルリソースファイル (.profile または .cshrc) に設定されていない場合、この qmake の呼び出しは失敗します。

    • 考えられる解決策 -v オプションを使用して、PATH 環境変数を qmake ジョブにエクスポートします。一般的な qmake の呼び出しは次のようになります。


      qmake -v PATH -cwd -pe make 2-10 --
  • 問題 qmake ユーティリティーを使用すると、次のエラーメッセージが返される。


    waiting for interactive job to be scheduled ...timeout (4 s)
    expired while waiting on socket fd 5
    
    Your "qrsh" request could not be scheduled, try again later.
    • 考えられる原因qmake の呼び出し元であるシェルに ARCH 環境変数が正しく設定されていない可能性があります。

    • 考えられる解決策 – クラスタで使用可能なホストに対応するサポート値を ARCH 変数に適切に設定するか、発行時に qmake -v ARCH=solaris64 ... などの適切な値を指定してください。

一般的なアカウンティングおよびレポートコンソールエラー

問題:

Version 2.0.3 の Sun Web コンソールのインストールが失敗し、次のエラーメッセージが表示される。


# ./inst_reporting
...
Register the N1 SGE reporting module in the webconsole

    Registering com.sun.grid.arco_6u3.

Starting Sun(TM) Web Console Version 2.0.3...
Ambiguous output redirect.
対処方法:

このバージョンの Sun Web コンソールは、ログインシェルとして /bin/sh を持つユーザー noacces のみがインストールできます。次のコマンドを使用してユーザーを追加する必要があります。


# useradd -u 60002 -g 60002 -d /tmp -s /bin/sh -c "No Access User" noaccess
問題:

簡単なクエリー定義の「table/view」ドロップダウンメニュー にエントリがないが、テーブルがデータベースで定義されている。

対処方法:

Oracle データベースを使用している場合に、通常、この問題が発生します。レポートモジュールのインストール時に、誤ったデータベーススキーマ名が指定されています。Oracle では、データベーススキーマ名は dbwriter によって使用されるデータベースユーザーの名前と同じになります。デフォルトの名前は arco_write です。Postgres では、データベーススキーマ名は public にしてください。

問題:

接続が拒否される。

対処方法:

smcwebserver が停止している可能性があります。smcwebserver を起動または再起動してください。

問題:

クエリーリストまたは結果リストが空である。

対処方法:

原因は以下のいずれかが考えられます。

  • データベースが停止状態です。データベースを起動または再起動してください。

  • これ以上データベース接続を使用できません。データベースへの接続数を増やしてください。

  • アプリケーションの構成ファイル内にエラーがあります。構成をチェックして、データベースユーザー、ユーザーパスワード、データベースの種類が誤ってないかどうか確認し、アプリケーションを再起動してください。

  • クエリーを実行できません。クエリーディレクトリ /var/spool/arco/queries が空でない場合は、次のエラーが発生している可能性があります。

    • XML ファイルでのクエリーの構文が誤っています。XML パーサーからログファイルでエラーメッセージを確認してください。

    • ユーザー noaccess は、クエリーディレクトリへの読み取り権も書き込み権も持っていません。

問題:

使用可能なデータベーステーブルリストが空である。

対処方法:

原因は以下のいずれかが考えられます。

  • データベースが停止状態です。データベースを起動または再起動してください。

  • これ以上データベース接続を使用できません。データベースへの接続数を増やしてください。

  • アプリケーションの構成ファイル内にエラーがあります。構成をチェックして、データベースユーザー、ユーザーパスワード、データベースの種類が誤ってないかどうか確認し、アプリケーションを再起動してください。

問題:

選択可能なフィールドリストが空である。

対処方法:

テーブルが選択されていません。リストから表を選択します。

問題:

フィルタリストが空である。

対処方法:

フィールドが選択されていません。1 つ以上のフィールドを定義してください。

問題:

ソートリストが空である。

対処方法:

フィールドが選択されていません。1 つ以上のフィールドを定義してください。

問題:

定義したフィルタが使用されていない。

対処方法:

フィルタがアクティブでない可能性があります。未使用のフィルタを変更して、アクティブにしてください。

問題:

高度なクエリーの遅延結合が無視され、実行がエラーになる。

対処方法:

遅延結合マクロに構文エラーがあります。高度なクエリーの遅延結合マクロの正しい構文は、次のとおりです。


latebinding{attribute;operator}
latebinding{attribute;operator;defaultvalue}
問題:

前の画面に戻るために breadcrumb を使用したが、ログイン画面が表示された。

対処方法:

セッションがタイムアウトになっています。再度ログインして、セッション時間を app.xml で増やしてください。

問題:

ビュー構成を定義したが、デフォルト構成が表示されている。

対処方法:

定義されたビュー構成は表示設定になっていません。ビュー構成を開いて、使用するビュー構成を定義してください。

問題:

ビュー構成を定義したが、最後の構成が表示されている。

対処方法:

定義されたビュー構成は表示設定になっていません。ビュー構成を開いて、使用するビュー構成を定義してください。

問題:

クエリーの実行に時間がかかりすぎる。

対処方法:

データベースから得られた結果が膨大です。結果に制限を設定するか、フィルタ条件を追加してください。