J'ai commencé un projet où je dois utiliser un svn externe (je suis sous un proxy). Lorsque je mets l'URL dans le projet de configuration, Jenkins ne peut pas accéder au référentiel. J'ai donc rempli les informations d'identification (URL du référentiel, nom d'utilisateur et mot de passe), mais voici l'erreur:
FAILED: svn: E175002: OPTIONS /.../trunk/www failed
org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /.../trunk/www failed
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:304)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:289)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:277)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.Java:696)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.Java:619)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.Java:103)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.Java:1018)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.Java:99)
at hudson.scm.SubversionSCM$DescriptorImpl.postCredential(SubversionSCM.Java:1968)
at hudson.scm.SubversionSCM$DescriptorImpl.doPostCredential(SubversionSCM.Java:1913)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.Java:288)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.Java:151)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.Java:90)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.Java:111)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:659)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.Java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:659)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.Java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:574)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:659)
at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:488)
at org.kohsuke.stapler.Stapler.service(Stapler.Java:162)
at javax.servlet.http.HttpServlet.service(HttpServlet.Java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.Java:248)
at winstone.RequestDispatcher.forward(RequestDispatcher.Java:333)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.Java:376)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.Java:95)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.Java:87)
at winstone.FilterConfiguration.execute(FilterConfiguration.Java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.Java:366)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.Java:47)
at winstone.FilterConfiguration.execute(FilterConfiguration.Java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.Java:366)
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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.Java:166)
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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.Java:173)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.Java:63)
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:66)
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 winstone.FilterConfiguration.execute(FilterConfiguration.Java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.Java:366)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.Java:50)
at winstone.FilterConfiguration.execute(FilterConfiguration.Java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.Java:366)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.Java:81)
at winstone.FilterConfiguration.execute(FilterConfiguration.Java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.Java:366)
at winstone.RequestDispatcher.forward(RequestDispatcher.Java:331)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.Java:215)
at winstone.RequestHandlerThread.run(RequestHandlerThread.Java:138)
at Java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at Java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at Java.util.concurrent.FutureTask.run(Unknown Source)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.Java:77)
at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)
Caused by: svn: E175002: OPTIONS /.../trunk/www failed
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:154)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:97)
... 80 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS request failed on '/.../trunk/www'
svn: E175002: connection refused by the server
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.Java:64)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.Java:51)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:681)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:298)
... 79 more
Caused by: svn: E175002: OPTIONS request failed on '/.../trunk/www'
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:208)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:679)
... 80 more
Caused by: svn: E175002: connection refused by the server
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.Java:208)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:424)
... 80 more
Caused by: Java.net.ConnectException: Connection timed out: connect
at Java.net.PlainSocketImpl.socketConnect(Native Method)
at Java.net.PlainSocketImpl.doConnect(Unknown Source)
at Java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at Java.net.PlainSocketImpl.connect(Unknown Source)
at Java.net.SocksSocketImpl.connect(Unknown Source)
at Java.net.Socket.connect(Unknown Source)
at com.Sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.connect(SVNSocketFactory.Java:112)
at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.Java:85)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.Java:195)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:360)
... 80 more
Dans C:\Windows\System32\config\systemprofile\AppData\Roaming\Subversion\server, le proxy est configuré et dans Jenkins, je peux installer/mettre à jour des plugins.
L'URL svn est dans https et je peux y accéder avec les informations d'identification dans un navigateur.
Par défaut, la version de svn utilisée dans Jenkins est 1.4, même avec la version 1.7, il est impossible d’accéder à ce serveur svn.
Le serveur est un Windows 7 64 bits et ceci est la dernière version de Jenkins.
Où est le problème ?
Je vous remercie
Supprimez votre ${user.home}/.Subversion
.
Vraiment tard dans le match ici, mais j'ai juste eu le même problème. Si vous exécutez manuellement SVN sur une machine Jenkins, un fichier d'authentification svn sera créé pour votre serveur svn (mise en cache de l'authentification). L'existence de ce fichier casse Jenkins svn.
Sur mon serveur (Windows), le fichier se trouve dans:
%APPDATA%\Subversion\auth\svn.simple
Je crois que sur Linux, ce serait dans ~/.Subversion
J'ai renommé le répertoire svn.simple en svn.simple1 et les choses ont immédiatement commencé à fonctionner (et se sont cassées à nouveau lorsque je l'ai changé).
Pour éviter cela lorsque vous exécutez svn bin sur le serveur Jenkins, vous pouvez
Vous pouvez exécuter la commande avec cette option:
-Dsvnkit.http.sslProtocols="SSLv3"
Je vais soumettre une réponse que j'ai soumise sur ServerFault qui a vraiment bien fonctionné pour moi. La solution a été d’éditer le fichier Jenkins.xml directement à son élément <arguments>
pour y inclure
-Dhttp.proxyHost=proxy.myproxy.com Dhttp.proxyPort=99999 -Dhttp.auth.preference=Basic
Apparemment, cela permet aux éléments internes de Java de passer par le serveur proxy.