Jenkins/Hudson SVN问题 [英] Jenkins/Hudson SVN Issue
问题描述
我在Jenkins安装中遇到一个(奇怪的)问题,该问题基本上导致SVN更新交替失败.
I have a (strange) issue on my Jenkins installation which basically leads to SVN updates failing on an alternate basis.
堆栈跟踪显示两个问题:
The stack trace shows two issues:
hudson.util.IOException2: revision check failed on (my repo)....
和
Caused by: org.tmatesoft.svn.core.SVNException: svn: OPTIONS (my repo)
如果在这种情况发生后我重新运行构建,则一切正常.
If I rerun a build after this happens, everything works just fine.
标记
由甘德斯编辑,并且存在完全相同的问题:
Edit by ganders with exact same issue:
这是我机器上的堆栈跟踪导致此错误.尝试访问SVNExternals目录(.../trunk/common)时,似乎会发生这种情况,并且由于某种原因,它在首次尝试访问时没有凭据.然后下一次,它就可以了:
Here's the stack trace from my machine that causes this error. It would appear as though it occurs when it tries to access the SVNExternals directory (.../trunk/common), and for some reason it doesn't have the credentials the first time it tries to access. Then the next time, it works just fine:
hudson.util.IOException2:修订检查失败 https://myserver.com/....../TrialsMobile/trunk /common hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:189) 在 hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:132) 在hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:738)处 hudson.scm.SubversionSCM.checkout(SubversionSCM.java:899)在 hudson.model.AbstractProject.checkout(AbstractProject.java:1414)在 hudson.model.AbstractBuild $ AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671) 在 jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) 在 hudson.model.AbstractBuild $ AbstractBuildExecution.run(AbstractBuild.java:580) 在hudson.model.Run.execute(Run.java:1676)处 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)在 hudson.model.ResourceController.execute(ResourceController.java:88) 在hudson.model.Executor.run(Executor.java:231)上由以下原因引起: org.tmatesoft.svn.core.SVNCancelException:svn:E200015:选项 /svn/mobilena/ios/TrialsMobile/trunk/common失败于 org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384) 在 org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373) 在 org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361) 在 org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707) 在 org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627) 在 org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102) 在 org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020) 在 org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180) 在 org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118) 在 org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148) 在 org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45) 在 org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:160) 在 org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:35) 在 org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20) 在 org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238) 在org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294) 在 org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:967) 在 org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:872) 在 hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:177) ... 11更多原因:org.tmatesoft.svn.core.SVNCancelException: svn:E200015:没有可尝试的证书.身份验证失败于 org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) 在 org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) 在 org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185) 在 org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:694) 在 org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382) ...还有29个
hudson.util.IOException2: revision check failed on https://myserver.com/....../TrialsMobile/trunk/common at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:189) at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:132) at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:738) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:899) at hudson.model.AbstractProject.checkout(AbstractProject.java:1414) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580) at hudson.model.Run.execute(Run.java:1676) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:231) Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /svn/mobilena/ios/TrialsMobile/trunk/common failed at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118) at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45) at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:160) at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:35) at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20) at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238) at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294) at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:967) at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:872) at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:177) ... 11 more Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:694) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382) ... 29 more
推荐答案
您不是唯一的看起来像您的构建工作正常的原因是因为这发生在修订检查(我需要构建吗?)上,并且当您通过按立即构建重建时>按钮,效果很好.让我们尝试一些事情:
The reason it looks like your build works is because this happens on a revision check (Do I need to build?), and when you rebuild by pressing the Build Now button, it works fine. Let's try a few things:
- 首先,您是否正在使用该插件的最新版本?如果您退回到Subversion插件的先前版本怎么办?如果您没有使用该插件的最新版本,可以升级到该插件吗?
- 检查您的配置.您是否在指定凭证?如果没有,请尝试指定凭据,看看是否有帮助.
- 看看这个新功能(而不是错误).
- 看看此博客文章 .
- First, are you on the latest revision of the plugin? What if you drop back to the previous revision of the Subversion plugin? If you're not on the latest revision of the plugin, can you upgrade to it?
- Check your configuration. Are you specifying credentials? If not, try specifying credentials and see if that helps.
- Take a look at this new feature (and not a bug.
- Take a look at this blog post.
似乎在版本2.0的Jenkins SVN插件中引入了 bug 功能 在外部完成.添加惊喜功能是导致程序员社区死亡的主要原因.
It looks like there was a bug introduced feature added in the SVN Plugin for Jenkins back in version 2.0 that changed the way authentication is done on externals. Adding surprise features is a leading cause of death in the programmer community.
这篇关于Jenkins/Hudson SVN问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!