Jenkinsの管理画面で発生したエラーの対応
ディスク容量エラー
いつもどおりJenkinsの画面を開くと、以下のエラーが表示されていました
「java.io.IOException: No space left on device」
ログインボタンも表示していなかったので、jenkins構築環境にログインして原因を調べました。
- 調べた結果以下の2通りで発生することが判明
- ディスク容量不足
- inode不足
とりあえず、ディスク使用量を確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
~
/dev/sda1 30G 30G 2.3M 100% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sdb1 7.8G 18M 7.4G 1% /mnt
tmpfs 395M 0 395M 0% /run/user/1000
ビンゴです。100%になってました。
Jenkinsのルートディレクトリへ移動してディレクトリごとの容量を確認
$ cd /var/lib/jenkins
$ du -sh ./*
~
5.0G ./workspace
workspaceで多く利用してました。
原因はジョブでGitを利用したことによる対応で、すごく大きな容量のリポジトリをcloneしていたために急激に容量不足となってしまいました。
念の為、inodeも確認
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
~
/dev/sda1 3840000 566748 3273252 15% /
tmpfs 505072 1 505071 1% /dev/shm
tmpfs 505072 3 505069 1% /run/lock
tmpfs 505072 17 505055 1% /sys/fs/cgroup
/dev/sdb1 524288 12 524276 1% /mnt
tmpfs 505072 4 505068 1% /run/user/1000
こちらは使用率15%なので問題ありませんでした。
ビルド結果を削除しないと、ログがたまっていってしまいinode不足により同様のエラーが発生することがあるみたいなので、ジョブの設定でビルドの保持期間はきちんと設定しておきましょう。
不要なファイルやディレクトリを削除して、Jenkinsを再起動したら問題なく動きました。
その際にブラウザからの再起動ではエラー画面が解決しませんでした。
http://domain:port/safeRestart
なので、コマンドから再起動で通常の画面が表示されました。
$ sudo /etc/init.d/jenkins restart
タイムアウトエラー
ジョブを実行していると、コンソール画面が以下の表示となりエラーとなってしまいました。
ERROR: Timeout after 10 minutes
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --progress giturl +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
Gitのプラグイン実行時に10分のタイムアウトエラーのような表示。
jenkinsの環境のワークスペースを確認してみました。
$ ls -a /var/lib/jenkins/workspace/ジョブ名
.git
.gitだけありました。
Gitのリポジトリが大きくて、cloneで10分以上立ってしまっていた可能性がったので、
対象のリポジトリをworkspaceにcloneしました
$ cd /var/lib/jenkins/workspace/ジョブ名
$ git clone giturl .
jenkins上でもタイムアウトの設定を10分から変更できるみたいです。
cloneが完了後は問題なくジョブが実行できました。