ラベル jenkins の投稿を表示しています。 すべての投稿を表示
ラベル jenkins の投稿を表示しています。 すべての投稿を表示

2017年1月24日火曜日

jenkinsのpluginのupdateでエラー出た件

Jenkinsのプラグインのアップデートをしようとアップデート画面を開いたら、
エラーが出てJenkinsおじさんが怒っていたので調べました。

対象のバージョンは以下のとおりです
Jenkins 1.595
Subversion Plug-in 1.54

Jenkinsの管理 - プラグインの管理 - アップデートを開くと、
Subversionプラグインで以下のエラーが出ていました。

javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-1.595.jar!/hudson/PluginManager/table.jelly:74:52:  java.lang.StackOverflowError
 at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:117)
 at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:735)
 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
 at org.kohsuke.stapler.MetaClass$3.doDispatch(MetaClass.java:183)
 at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
 at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
 at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
 at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
 at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
 at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
 at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
 at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
 at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
 at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
 at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
 at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
 at org.eclipse.jetty.server.Server.handle(Server.java:370)
 at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
 at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
 at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
 at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
 at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
 at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
 at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
 at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
 at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-1.595.jar!/hudson/PluginManager/table.jelly:74:52:  java.lang.StackOverflowError
 at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:745)
 at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:289)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
 at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
 at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
 at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
 at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
 at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
 at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
 at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
 at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
 at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
 at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
 at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
 at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
 at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
 at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
 at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
 at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
 at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
 at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
 at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
 ... 65 more
Caused by: 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:813)
 at hudson.util.TextFile.exists(TextFile.java:57)
 at hudson.model.UpdateSite.getData(UpdateSite.java:271)
 at hudson.model.UpdateSite.getPlugin(UpdateSite.java:331)
 at hudson.model.UpdateCenter.getPlugin(UpdateCenter.java:332)
 at hudson.model.UpdateSite$Plugin.getNeededDependencies(UpdateSite.java:684)
 at hudson.model.UpdateSite$Plugin.isNeededDependenciesCompatibleWithInstalledVersion(UpdateSite.java:762)
 at hudson.model.UpdateSite$Plugin.isNeededDependenciesCompatibleWithInstalledVersion(UpdateSite.java:763)

調べてみると、Subversionプラグインをupdateするとよいらしく、
Jenkins上からはアップデートできないので手動でアップデートを行いました。
wget http://updates.jenkins-ci.org/download/plugins/subversion/2.7.1/subversion.hpi
sudo cp -p subversion.hpi /var/lib/jenkins/plugins/
sudo service restart jenkins

これでエラーは出なくなりました。
ちなみにJenkinsでエラーは出なくなるけど、インストール済みのプラグインのところからSubversionプラグインが消えてました。
消えたままでも問題なさそうでしたけど、一応入れたほうがよいかなという場合は、
利用可能のところからインストールすることでまたインストール済みのところに現れるようになりました。


参考URL
https://issues.jenkins-ci.org/browse/JENKINS-36361
http://qiita.com/tnishi91/items/50e6a1f1071c135a22ee

2015年3月3日火曜日

jenkinsでrubocop実行したらジョブがエラーになった時の対応

rubocopで定期的にコーディングチェックをしたかったので、
jenkinsで実行したらジョブがエラーになったので調べました。
前提として、rubocopで警告が1個以上出る状態で実行しています。
jenkinsのバージョンは1.599-1.1

jenkinsのジョブでシェルの実行に以下を追加してジョブを実行する
bundle exec rubocop --debug --rails --no-color --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --out test/reports/checkstyle.xml
実行してみたらこんな感じでfailureになりました。
12:32:28 + bundle exec rubocop --debug --rails --no-color --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --out test/reports/checkstyle.xml
12:32:29 warning: parser/current is loading parser/ruby21, which recognizes
12:32:29 warning: 2.1.5-compliant syntax, but you are running 2.1.4.
12:32:36 For /var/lib/jenkins/jobs/test/workspace: configuration from /var/lib/jenkins/jobs/test/workspace/.rubocop.yml
12:32:36 Inheriting configuration from /var/lib/jenkins/jobs/test/workspace/.rubocop_todo.yml
12:32:36 Default configuration from /var/lib/jenkins/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/rubocop-0.28.0/config/default.yml
12:32:36 Inheriting configuration from /var/lib/jenkins/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/rubocop-0.28.0/config/enabled.yml
12:32:36 Inheriting configuration from /var/lib/jenkins/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/rubocop-0.28.0/config/disabled.yml
12:32:36 Scanning /var/lib/jenkins/jobs/test/workspace/Gemfile
12:32:36 Scanning /var/lib/jenkins/jobs/test/workspace/Rakefile
12:32:36 Scanning /var/lib/jenkins/jobs/test/workspace/Capfile
・・・・
12:32:53 Finished in 23.879888448 seconds
12:32:53 Build step 'シェルの実行' marked build as failure

シェルの内容を最後に必ずexit 0を返す以下に変更してみたが状況は変わらず。。
bundle exec rubocop --debug --rails --no-color --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --out test/reports/checkstyle.xml
exit 0

jenkinsについて調べてみると、jenkinsのシェルの実行は
/bin/sh -xe
で実行されているので、0でない終了コードが出た時点でスクリプトが終了するらしい。

シェルの内容を以下に変更してみる
/bin/sh -x
bundle exec rubocop --debug --rails --no-color --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --out test/reports/checkstyle.xml
exit 0

再度実行してみると無事に成功しました。
12:44:42 + bundle exec rubocop --debug --rails --no-color --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --out test/reports/checkstyle.xml
12:44:43 warning: parser/current is loading parser/ruby21, which recognizes
12:44:43 warning: 2.1.5-compliant syntax, but you are running 2.1.4.
12:44:50 For /var/lib/jenkins/jobs/test/workspace: configuration from /var/lib/jenkins/jobs/test/workspace/.rubocop.yml
12:44:50 Inheriting configuration from /var/lib/jenkins/jobs/test/workspace/.rubocop_todo.yml
12:44:50 Default configuration from /var/lib/jenkins/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/rubocop-0.28.0/config/default.yml
12:44:50 Inheriting configuration from /var/lib/jenkins/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/rubocop-0.28.0/config/enabled.yml
12:44:50 Inheriting configuration from /var/lib/jenkins/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/rubocop-0.28.0/config/disabled.yml
12:44:50 Scanning /var/lib/jenkins/jobs/test/workspace/Gemfile
12:44:50 Scanning /var/lib/jenkins/jobs/test/workspace/Rakefile
12:44:50 Scanning /var/lib/jenkins/jobs/test/workspace/Capfile
・・・
12:45:07 Finished in 23.688404726 seconds
12:45:07 + exit 0


参考URL
http://qiita.com/mechamogera/items/f689b95670127d5bf046