Jenkins
Total: 14834
, Today: 4
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
Jenkins
の設定、トラブルに関するメモなどを記述しています。
トラブル
Git plugin 変更履歴がすべて「%B」
- 2019-02-01:
Jenkins ver. 2.150.2
で変更履歴のメッセージがすべて%B
になってしまう?2.163
では発生していないが、これは無関係かも?- コミットメッセージに日本語は入っていないので、文字化けではないはず
Git client plugin
を3.0.0rc
から2.7.6
、Git plugin
を4.0.0rc
から3.9.2
にダウングレードすることで一応は回復したCentOS release 6.10
にインストールされているgit
のバージョンを1.7.1
から2.1.8
に上げたらGit client plugin
を3.0.0rc
、Git plugin
を4.0.0rc
に更新しても問題なく更新履歴が表示されるようになった- メモ: JENKINS-53004 checkout fails due to issue with JGit 5.0.2 (in 3.0.0.beta-5) - Jenkins JIRA
JellyTagException
- 2018-11-20: プラグインをアップデートすると
Jenkins
の画面全体にスタックトレース(何故か右から左に文字が流れている)が表示かつ断続的にリロードされてなにも操作できなくなるorg.apache.commons.jelly.JellyTagException: jar:file:/.../jenkins/war/WEB-INF/lib/jenkins-core-2.152.jar!/lib/layout/hasPermission.jelly:35:20: <d:invokeBody> com/trilead/ssh2/crypto/Base64 ...
- Jenkins shows exception after plugin updates - Google グループ
- JENKINS-54686 Use trilead-api plugin instead trilead-ssh2 from core - Jenkins JIRA
ssh-slaves-1.29.0
プラグインが原因らしいので、これをロールバック(plugins/ssh-slaves.jpi
を削除してplugins/ssh-slaves.bak
(1.28.1
)をssh-slaves.jpi
にリネーム)すると正常に動作するようになった- 修正された
ssh-slaves-1.29.1
でも発生する環境がある?ようなので、当面はssh-slaves-1.28.1
を使用するのが安全かもしれないCentOS release 6.10
+Jenkins ver. 2.138.3
で試した場合、ssh-slaves-1.29.1
は正常に動作している
GIT_ASKPASS credentials
Jenkins
がgit
コマンドを使用するとき、資格情報が入力されるのを待ち続けてタイムアウトしてしまう場合がある> C:\Program Files\Git\bin\git.exe --version # timeout=10 using GIT_ASKPASS to set credentials ユーザ名 > C:\Program Files\Git\bin\git.exe fetch --tags --progress http://example.com/git/test +refs/heads/*:refs/remotes/origin/* ERROR: Timeout after 10 minutes ERROR: Error fetching remote repo 'origin'
git config --system --unset credential.helper
を実行してC:\Program Files\Git\mingw64\etc\gitconfig
から資格情報ヘルパーを削除するGit for Windows
の再インストールでC:\Program Files\Git\mingw64\etc\gitconfig
が上書きされる?ようなので、Enable Git Credential Manager
のチェックを外すほうが確実かもしれない
diskcheckプラグインでArrayIndexOutOfBoundsException
diskcheck
を0.29
にするとArrayIndexOutOfBoundsException
が発生してビルドに失敗する場合がある?- DiskCheck Plugin - Jenkins - Jenkins Wiki
0.29
に更新前はTotal Disk Space Available is: 26Gb
ほど空き容量はある状態Windows 7 64bit
+Jenkins 2.66
で発生CentOS release 6.8 (Final)
+Jenkins 2.66
は問題なし
SCMのポーリングが実行
ビルドします。 ワークスペース: ********************
Disk space threshold is set to :0Gb
Checking disk space Now
FATAL: 62
java.lang.ArrayIndexOutOfBoundsException: 62
at org.jenkinsci.plugin.Diskcheck.preCheckout(Diskcheck.java:122)
at jenkins.scm.SCMCheckoutStrategy.preCheckout(SCMCheckoutStrategy.java:76)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:484)
at hudson.model.Run.execute(Run.java:1735)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:415)
[WARNINGS] Skipping publisher since build result is FAILURE
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 5 second
Finished: FAILURE
PipelineでStackOverflowError
Jenkins 2.63
でPipeline
プラグインを最新に更新するとStackOverflowError
が発生する- 旧プロジェクトは問題なく実行できる
StackOverflowError
が発生している環境はCentOS release 6.8 (Final)
+JDK 1.8.0_131 32bit
Jenkins 2.64
+ JENKINS-44578 StackOverflowError in CpsTransformer running Declarative on JVMs with small -Xss in workflow-cps 2.33 - Jenkins JIRAで修正された
Started by user TERAI Atsuhiro
> git rev-parse --is-inside-work-tree # timeout=10
Setting origin to https://github.com/aterai/java-swing-tips
> git config remote.origin.url https://github.com/aterai/java-swing-tips # timeout=10
Fetching origin...
Fetching upstream changes from origin
> git --version # timeout=10
> git fetch --tags --progress origin +refs/heads/*:refs/remotes/origin/*
Seen branch in repository origin/master
Seen 1 remote branch
Obtained Jenkinsfile from ...
[Pipeline] End of Pipeline
java.lang.StackOverflowError
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.exists(File.java:819)
at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1282)
at sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:1249)
at sun.misc.URLClassPath.findResource(URLClassPath.java:215)
at java.net.URLClassLoader$2.run(URLClassLoader.java:569)
at java.net.URLClassLoader$2.run(URLClassLoader.java:567)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:566)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:546)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:103)
at com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:93)
at com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66)
at java.beans.Introspector.findExplicitBeanInfo(Introspector.java:448)
at java.beans.Introspector.<init>(Introspector.java:398)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at groovy.lang.MetaClassImpl$15.run(MetaClassImpl.java:3313)
at java.security.AccessController.doPrivileged(Native Method)
at groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:3311)
at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:3288)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:260)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:302)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:312)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:265)
at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:879)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:125)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:166)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at com.cloudbees.groovy.cps.CpsTransformer.visit(CpsTransformer.groovy:279)
...
インストール後ジョブがなければ再起動が無効
- 最近の
Weekly
版(2.5x
頃?)は、「インストール完了後、ジョブがなければJenkins
を再起動する」でジョブが実行中でも再起動されてしまい、ビルドが失敗する? - 「ビルドを並列実行」を「しない」にしているビルドを複数を実行すると、後から実行したビルドがビルドキューに入らず、並列実行されてしまう
- 「システムの設定」で「同時ビルド数」を
1
にすれば、並列実行されなくなる - Jenkins Security Advisory 2017-04-26
- SECURITY-412: Restart Jenkins immediately, after all builds are finished, or after all plugin installations and builds are finished
- ジョブがエラーにはならなくなったが、実行中のジョブの終了は待たずにキャンセル扱いになる?
- 「システムの設定」で「同時ビルド数」を
1.597でフォルダ構成が変更
Jenkins
を1.597
にアップグレードしたら表示がおかしくなる1.597
で、JENKINS_HOME
以下のフォルダ構成が変更になったException
をみると、Disk usage plugin
がフォルダ文字列をパースできずにエラーを出している- Important: Upgrading to Jenkins 1.597
修正はまだスナップショットなので、当面Disk usage plugin
を削除しておくことで対応
Jenkinsの自動更新に失敗
Jenkins
の自動更新が失敗するWindows
サービス化している場合に失敗する?- FIX JENKINS-22685 Jenkins cannot restart Windows service by gmjck ・ Pull Request #1238 ・ jenkinsci/jenkins
- JENKINS-13153 "Upgrade Automatically" does not seem to work on Windows - Jenkins JIRA
- Windows環境で
JENKINS_HOME
を変更している場合、自動更新に失敗する不具合が2.77
で修正された
- Windows環境で
リポジトリブラウザの設定が保存されない
Jenkinsの設定
- ホームディレクトリ(
Windows
環境)- デフォルトの
~/.jenkins
に実行ファイルやビルド結果を一緒に保存すると、バックアップなどが面倒 C:\Program Files (x86)\Jenkins\
にjenkins.exe
やjenkins.war
をインストールするとjenkins.xml
などが編集しづらいので、C:\Jenkins
以下にインストールする- システム環境変数
JAVA_HOME
で指定したバージョンのJava
をJenkins
が使用するようにC:\Jenkins\jenkins.xml
を変更<executable>%JAVA_HOME%\bin\java</executable>
- デフォルトの
- 高度な設定(
Jenkins
の管理、システムの設定にあるボタンをクリック)- ワークスペース・ルートディレクトリ:
C:/HogeHoge/${ITEM_FULLNAME}
- ビルド・ルートディレクトリ:
${ITEM_ROOTDIR}/builds
- ワークスペース・ルートディレクトリ:
Jenkinsfile
- パイプラインで
ant
を呼び出す方法がよく分からないので、~/.sdkman/candidates/ant/current/bin/ant
を直接呼んでいる
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/aterai/java-swing-tips.git'
}
}
stage('PMD') {
steps {
sh "~/.sdkman/candidates/ant/current/bin/ant -file all.xml pmd"
step([$class: 'PmdPublisher', pattern: '**/pmd.xml'])
}
}
stage('CheckStyle') {
steps {
sh "~/.sdkman/candidates/ant/current/bin/ant -file all.xml checkstyle"
step([$class: 'CheckStylePublisher', pattern: '**/checkstyle-result.xml'])
}
}
}
}
プラグイン
GIT plugin
Git cliant plugin
も一緒にインストールされる- ログのエンコーディングが変更できない
ログの文字コードをShift_JIS
にカスタマイズする2.3.5
付近で修正された?ようなので、変更は不要になった
- ログのエンコーディングが変更できない
Warnings Plug-in
- コンソールログから警告を集計してグラフ表示
- 同じくログのエンコーディングが変更できない
ログの文字コードをShift_JIS
にカスタマイズする- #JENKINS-24611 Warnings plugin, missing AntJavaParser in the parser selection list - Jenkins JIRAで修正された
- 同じくログのエンコーディングが変更できない