ジョブフローからプロセス停止の際にエラーとなる

コメント

6件のコメント

  • 正式なコメント
    Ichiro Takahashi

    追加の情報ありがとうございます。

    ソースはログについてはご対応いただいている途中ですが、ジョブマネージャの情報からおおよそ原因がわかりました。

    「test1がkompira本体、test2がジョブマネージャの動作サーバ」とありますが、おそらくジョブフローでは(リモートノードを指定せずに)ローカルノードに対して「manage.py process --terminate」コマンドを実行しているのではないでしょうか?

    この manage.py process コマンドは「kompira 本体」がインストールされたサーバ上でしか動作しません。しかし、上記のとおりの実行方法ですが、コマンドジョブは test1 または test2 で実行されることになり、test2 で実行される場面で manage.py process コマンドがエラーになっているものと考えられます。

    回避策としては、例えば、kompira 本体のサーバに対して SSH ログインして manage.py process コマンドを実行するようにしていただければ、どのジョブマネージャからでも実行できるようになると考えられます。

    コメントアクション パーマリンク
  • Ichiro Takahashi

    フィックスポイントの高橋です。

    ・ジョブフローからコマンドジョブ`/opt/kompira/bin/manage.py process --terminate -y --pid $pid`で稼働中の別プロセスを停止しようとした際にエラーとなります(djangoのモジュールエラー)

    弊社内で簡単に確認したかぎりでは、エラーになることは再現せずプロセスを強制終了できているようでした。

    調査のために、以下について教えていただけますでしょうか。

    • 発生した場合には、どのようなエラーが表示されますでしょうか?
    • 発生時に /var/log/kompira/kompirad.log にどのようなログが記録されていますでしょうか?(あるいは何も記録されていないか)
    • v1.6.9 環境でご利用中の Python バージョン(/opt/kompira/bin/python -V)はいくつでしょうか?

    以上、よろしくお願いいたします。

    0
    コメントアクション パーマリンク
  • ueyama

    ご回答ありがとうございます。

    ・Python環境はPython 3.8.17です

    ・コンソールのエラー出力、ログ等に関しては、別途サポート窓口へ送付させていただきます。

    あと分かったこととしましては、実行環境下で別途SMTP設定していますが、

    メールが送れない状況でした(接続テストはOKですが、メールサーバ側の許可設定が未対応の状況下です)

    当該ジョブ(停止対象)の監視モードがプロセス異常終了時にメール送信になっておりました

    →kompiradのログに一部

    raise SMTPRecipientsRefused(senderrs)

    が記録されておりました

     

     

     

     

     

    0
    コメントアクション パーマリンク
  • Ichiro Takahashi

    ログのご提供ありがとうございます。
    いただいたログだけでは原因は特定できませんでしたが、気になる点がございますので、以下についても追加でご提供いただけますでしょうか。

    • manage.py process --terminate を呼び出しているジョブフローのソースコード
    • 発生時の /var/log/kompira/kompira_jobmngrd.log ログ
    • 管理領域のデフォルト領域に表示されるジョブマネージャ状態の一覧

    SMTPRecipientsRefused エラーにつきましては、おそらく宛先に設定されている dummy@test.domain が不正なものとしてローカルまたはリモートのメールサーバがエラーを返しているのではないかと思います。適正なメールアドレスを設定してもエラーになるか確認してみていただけますでしょうか。

    0
    コメントアクション パーマリンク
  • ueyama

    デフォルト領域は以下の状態です

    対象範囲 *
    無効 False

    ジョブマネージャ状態

    ホスト名 プロセスID SSL バージョン ステータス
    test1 141908 TLSv1.3 1.6.9 動作中
    test2 210156 TLSv1.3 1.6.9 動作中

    ※ホスト名は実環境とは別名に置換しています
    (test1がkompira本体、test2がジョブマネージャの動作サーバ)

    また、先程のdummy@test.domain についても、実際は実在するメールアドレス(他環境下では問題なく送受信できるアドレス)が出力されていましたが、ご提供時に上記に置換しております。

    お伝えもれておりまいた。申し訳ありません

    その他、ソースやログは別途送付いたします。

     

     

    0
    コメントアクション パーマリンク
  • ueyama

    「test1がkompira本体、test2がジョブマネージャの動作サーバ」とありますが、おそらくジョブフローでは(リモートノードを指定せずに)ローカルノードに対して「manage.py process --terminate」コマンドを実行しているのではないでしょうか?

    ソース確認したところ、上記ご指摘のとおり、ローカルノードに対して実行しておりました。

    この manage.py process コマンドは「kompira 本体」がインストールされたサーバ上でしか動作しません。しかし、上記のとおりの実行方法ですが、コマンドジョブは test1 または test2 で実行されることになり、test2 で実行される場面で manage.py process コマンドがエラーになっているものと考えられます

    承知しました。複数プロセスを停止しようとして、成功するものと失敗するものがある今回の現象が、

    上記ご説明内容から納得いたしました。

    回避策としては、例えば、kompira 本体のサーバに対して SSH ログインして manage.py process コマンドを実行するようにしていただければ、どのジョブマネージャからでも実行できるようになると考えられます。

    こちらも承知いたしました。

    本事象について、原因と対応策わかりましたので、本件クローズください。

    ご対応ありがとうございました。

     

    0
    コメントアクション パーマリンク

サインインしてコメントを残してください。