Jenkins任务执行SVN操作时卡在认证域环节求助
先还原下你的问题场景:通过Jenkinsfile执行的任务,在运行svn copy命令时卡在了认证域环节,所有同类任务都出现这个问题,之前运行正常,已经尝试过删除workspace下的subversion/auth文件夹并手动检出,但问题依旧。
对应的错误日志如下:
D:\jenkins-docker\workspace\JenkinsPipeline>svn copy -r HEAD http://xyz/svn/branches/B123 http://xyz/svn/tags/G_UI -m "Tagging at Revision" Authentication realm: <http://xyz:80> wandisco *loader icon*
结合这些信息,给你几个针对性的排查和解决方向:
检查Jenkins全局凭据的有效性
既然所有同类任务都出问题,大概率是节点或全局的SVN凭据失效了。去Jenkins的「全局凭据」页面,找到对应SVN服务器的凭据,先验证凭据是否可用(比如用这个凭据手动在节点上拉取SVN代码),如果是密码过期或变更,更新凭据后再重新触发任务。另外,Jenkins可能缓存了旧凭据,重启下Jenkins服务或对应的执行节点,让缓存刷新。排查SVN服务器端的认证变化
之前正常现在突然全量出问题,很可能是SVN服务器那边调整了认证规则——比如改了密码策略、启用了客户端证书认证、或者调整了项目权限组。你可以直接在Jenkins执行节点上,用任务运行的用户身份手动执行那行svn copy命令,看看是会弹出认证提示还是直接报错,手动操作的结果能帮你快速定位是服务器端还是Jenkins配置的问题。清理节点全局的SVN认证缓存
你只清理了workspace下的subversion/auth,但节点用户的全局SVN缓存可能还留存着旧的无效凭据。Windows系统下,找到Jenkins运行用户的目录(比如C:\Users\<Jenkins服务用户>\.subversion\auth),把这个auth文件夹整个删掉;Linux/Mac的话是~/.subversion/auth。清理后再触发任务,让Jenkins重新加载正确的凭据。检查SVN插件的兼容性
如果最近更新过Jenkins或Subversion插件,可能是新版本插件的兼容性问题。去Jenkins的插件管理页面,找到Subversion插件,查看更新记录,尝试回滚到之前任务能正常运行的版本,再测试任务是否恢复。
内容的提问来源于stack exchange,提问作者Vikas Rathore

