LoginSignup
9
6

More than 5 years have passed since last update.

Jenkins 利用可能な次のエグゼキュータ―を待っています の状態からビルドが実行されない

Last updated at Posted at 2016-04-08

経緯

とある事情で、jenkinsを別サーバにバックアップ(/var/lib/jenkins配下すべて)しておいたデータからリストアすることになった。
データを丸ごと持ってきてもうまく動作しなかった為、以下復旧までの対処方法を書きます。

環境

Centos7.1 x86_64
Jenkins Ver 1.656

はまったところ

手動でビルド実行するとうまくいく場合もあるが、概ねビルド実行をクリックしても何も反応しない。
裏では、/var/log/jenkins/jenkins.logで後で書くエラーがでていた。

定期実行でビルド実行しているが、何10分たっても実行されず、、
終いに下記エラーで止まる

pending - 利用可能な次のエグゼキュータ―を待っています

解決方法として、ビルド履歴を削除し、その後jenkinsを再起動する必要がある

移行後、ビルド実行時に/var/log/jenkins/jenkins.logに下記エラーが出力されるようになった

error内容

重大: Unexpected executor death
java.lang.IllegalStateException: cannot create a build with number 10625 since that (or higher) is already in use among [10614, 24093, 24094, 24095, 24096, 24097, 24098, 24099, 24100, 24101, 24102, 24103, 24104, 24105, 24106, 

<snip>

26098, 26099, 26100, 26101, 26102, 26103, 26104, 26105, 26106, 26107, 26108]
        at jenkins.model.lazy.AbstractLazyLoadRunMap.proposeNewNumber(AbstractLazyLoadRunMap.java:373)
        at hudson.model.RunMap.put(RunMap.java:191)
        at jenkins.model.lazy.LazyBuildMixIn.newBuild(LazyBuildMixIn.java:176)
        at hudson.model.AbstractProject.newBuild(AbstractProject.java:1018)
        at hudson.model.AbstractProject.createExecutable(AbstractProject.java:1209)
        at hudson.model.AbstractProject.createExecutable(AbstractProject.java:144)
        at hudson.model.Executor$1.call(Executor.java:364)
        at hudson.model.Executor$1.call(Executor.java:346)
        at hudson.model.Queue._withLock(Queue.java:1371)
        at hudson.model.Queue.withLock(Queue.java:1232)
        at hudson.model.Executor.run(Executor.java:346)

4 08, 2016 6:57:13 午後 hudson.model.Run execute

解決手順

jenkinsのホームディレクトリは、/var/lib/jenkinsの場合です

プロジェクト毎すべてのbuildsディレクトリを削除する

# rm -rf /var/lib/jenkins/jobs/*/builds

削除されたか確認

# ls -lad /var/lib/jenkins/jobs/*/builds
ls: /var/lib/jenkins/jobs/*/builds にアクセスできません: そのようなファイルやディレクトリはありません

次回、ビルド番号が1から始まるように上書き

# for i in `ls /var/lib/jenkins/jobs/*/nextBuildNumber` ; do echo "1" > $i ;
done

すべて1か確認

# cat /var/lib/jenkins/jobs/*/nextBuildNumber
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

最後に、jenkinsプロセス再起動

/etc/init.d/jenkins restart

他の考えられる原因

ノードがオフラインになっている

「Jenkins の管理」> 「ノードの管理」でオフラインになっていないノードがないか確認

DISK空き容量不足

Jenkinsが搭載されているサーバのDISK容量(もしくはinode)が枯渇している場合

jenkinsを定期実行して、しばらくすると失敗するようになり、調べたらまさかのinode枯渇。。
ビルド履歴を一定期間で削除するよう設定しないとダメです。

ジョブ毎の設定>古いビルドの破棄にチェック
ビルドの保存日数、ビルドの保存最大数が設定可能です。

以上

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6