web-dev-qa-db-fra.com

Erreur Jenkins Subversion - E200015: Aucune information d'identification à essayer. Authentification échouée

J'ai mis à jour le plugin Subversion de jenkins vers la version 2.2

Maintenant, j'obtiens l'erreur suivante pour les repos qui se construisent la première fois après la mise à niveau et pour les repos où quelque chose dans un externe a changé. Cela fonctionne pour toutes les autres versions comme prévu.

J'ai essayé d'ajouter des informations d'identification supplémentaires, mais cela n'a pas aidé.

J'espère maintenant que quelqu'un a une idée de ce qui peut être essayé d'autre pour résoudre ce problème d'annyoing.

L'erreur:

hudson.util.IOException2: revision check failed on http://XXX/svn/XXX/Website/Config/trunk
    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:1411)
    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:1670)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
    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/XXX/Website/Config/trunk 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
28
mikepenz

Ok après de nombreux commentaires sur le bug officiel rapport nous avons pu résoudre ce problème.

Donc, pour le faire fonctionner, vous devez mettre à jour la dernière version 2.3 du plugin Subversion, qui peut être trouvée ici:

https://jenkins.ci.cloudbees.com/job/plugins/job/Subversion-plugin/

(Téléchargez le fichier .hpi et installez-le sur vos jenkins)

  1. Après cela, vous devez corriger votre build. J'ai écrit un petit tutoriel sur la façon dont vous pouvez le faire ici .
  2. ouvrir la configuration de construction
  3. faites défiler jusqu'à la section de gestion du code source
  4. cliquez sur le bouton "Ajouter des informations d'identification supplémentaires ..."
  5. définir comme domaine l'identifiant spécifique de notre serveur svn -> (<prot://ip:port > Company Subversion Repository)
    • si cela devrait fonctionner pour un autre svn, vous devez utiliser le domaine de ce serveur
    • extraire un dépôt sur ce serveur via la ligne de commande -> svn --username {username} --password {password} checkout prot://ip:port/svn/repo <- vous pouvez l'annuler après avoir lancé l'extraction
    • lire tous les royaumes disponibles sur votre mac avec ce cmd -> find ~/.Subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
      • il y a aussi une autre option pour obtenir le realmstring. sur un PC qui n'était pas connecté au svn auparavant, procédez comme suit dans le therminal: "svn info prot: // ip: port/pathtorepo" -> cela produira quelque chose comme "Domaine d'authentification: Company Subversion Repository"
  6. sélectionnez les informations d'identification -> buildmaster/****** (<prot://ip:port> Company Subversion Repository)

REMARQUE: si vous utilisez svn + ssh , votre domaine ressemblera à "svn + ssh: // nom-serveur" sans guillemets doubles. Aucun support pointu, nom de port ou de domaine requis.

  1. économisez et soyez heureux!
22
mikepenz

J'ai eu la même erreur. Depuis le dépôt svn était protégé par mot de passe. lorsque j'ajoute les informations d'identification et que je les utilise pour vérifier svn, cela fonctionne très bien.

enter image description here

3
karim

J'obtenais exactement la même exception et c'était à cause de l'utilisation du paramètre de construction dans le chemin du référentiel, par exemple:

http://reposerver/svn/project/${SVN_BRANCH}

même si $ {SVN_BRANCH} était correctement réglé sur 'trunk' Cela ne fonctionnait pas

quand j'ai changé le chemin du référentiel en:

http://reposerver/svn/project/trunk

tout fonctionne bien maintenant

Ce problème est survenu après la mise à niveau du plugin svn de 1.54 à 2.2, il semble donc qu'il y ait un bug dans la nouvelle version du plugin svn jenkins

1
martinsefcik

Je voudrais souligner un point dans réponse de mikepenz: Dans le champ de texte Realm de la configuration de votre travail (après avoir cliqué sur Add additional credentials...) vous n'entrez pas simplement votre domaine SVN mais votre domaine et l'URL complète de votre dépôt externe. Cela m'a fait trébucher.

Donc, cette partie de votre configuration de travail ressemble à ceci:

enter image description here

Modifier :

Il s'avère que ce qui précède n'a pas amélioré la situation: l'erreur d'identification s'est toujours produite et de plus, la validation sur des dépôts externes n'a pas déclenché Jenkins pour construire le logiciel.

J'ai suivi la recommandation ici (qui mentionne également des problèmes de sécurité avec l'approche décrite ci-dessus) et utilisé modules dans Jenkins pour mon externe référentiels.

Voici à quoi ressemble la configuration de mon module pour un dépôt externe:

jenkins external repo as module

1
Matthias Braun