S-JIS[2017-02-25/2017-03-08] 変更履歴

Retzエラーメモ

Retzでよくあるエラー。


終了コード126によるKILL

Retz 0.2.3にて、retz-clientのrunコマンドで実行した際に以下のようなログを出して異常終了。

Command exited with status 126 (pid: 14013)
INFO ============ stdout of job 2 sandbox end ===========
INFO Job(id=2, cmd='$ASAKUSA_HOME/yaess/bin/yaess-batch.sh m3bp.ExampleBatch) finished in 0.105 seconds. status: KILLED

アプリケーション(シェル)の終了コードが126で、RetzのステータスはKILLEDになっている。
(ただし、listコマンドで見ると終了コードは-1になっている)

(runコマンドでは標準出力のログしか出ないので)標準エラーのログを見てみると以下のような感じ。

$ retz-client get-file -id 2 --path stderr
〜
I0221 13:35:48.929261 13953 exec.cpp:162] Version: 1.1.0
I0221 13:35:48.932693 13970 exec.cpp:237] Executor registered on agent 22b28beb-75c3-4180-b667-df712371d365-S7
sh: /home/hishidama/asakusa/yaess/bin/yaess-batch.sh: Permission denied

シェルを実行しようとしてPermission denied(権限が無い)だと、Linuxでは終了コードが126になるらしい。

で、実行環境のyaess-batch.shを見ると全ユーザーに対して実行権限はあったのだが、
/home/hishidamaには自分自身のアクセス権限しか無かった。


Retz(Mesos)でアプリケーションを実行する際は、デフォルトでは専用のユーザーで実行しようとするらしい。
なので実行権限でエラーになることがある。

load-appする際に「そのアプリケーションをどのユーザーで実行するか」を指定できるので、それを指定しておく。

$ retz-client load-app -A asakusa0 -U hishidama

あるいは、retz-server/etc/retz.propertiesのretz.userでユーザーを指定しておく。[2017-03-08]


Retz目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま