Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-30196

SVN Exception : svn: E210004: Malformed network data

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Blocker Blocker
    • subversion-plugin
    • None
    • Jenkins 1.624
      Subversion Plug-in 2.5

      Though Jenkins is able to poll SCM and triggers build automatically but failed to check out svn repository with below error

      00:00:04.821 ERROR: Failed to check out svn://xxxx/yy
      00:00:04.822 org.tmatesoft.svn.core.SVNException: svn: E210004: Malformed network data
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readChar(SVNReader.java:478)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.skipWhiteSpace(SVNReader.java:485)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readTuple(SVNReader.java:287)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.parse(SVNReader.java:241)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.read(SVNConnection.java:276)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:174)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:1276)
      00:00:04.823 at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getDatedRevision(SVNRepositoryImpl.java:191)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:178)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:187)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:756)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
      00:00:04.823 at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
      00:00:04.823 at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259)
      00:00:04.823 at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
      00:00:04.823 at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:115)
      00:00:04.824 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
      00:00:04.824 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:170)
      00:00:04.824 at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:133)
      00:00:04.824 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
      00:00:04.824 at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:991)
      00:00:04.824 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:972)
      00:00:04.824 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:948)
      00:00:04.824 at hudson.FilePath.act(FilePath.java:991)
      00:00:04.824 at hudson.FilePath.act(FilePath.java:969)
      00:00:04.824 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:897)
      00:00:04.824 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:833)
      00:00:04.824 at hudson.scm.SCM.checkout(SCM.java:485)
      00:00:04.824 at hudson.model.AbstractProject.checkout(AbstractProject.java:1277)
      00:00:04.824 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
      00:00:04.824 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      00:00:04.824 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
      00:00:04.824 at hudson.model.Run.execute(Run.java:1741)
      00:00:04.824 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      00:00:04.824 at hudson.model.ResourceController.execute(ResourceController.java:98)
      00:00:04.824 at hudson.model.Executor.run(Executor.java:381)
      00:00:04.825 java.io.IOException: Failed to check out svn://xxxx/yy
      00:00:04.826 at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:126)
      00:00:04.826 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
      00:00:04.826 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:170)
      00:00:04.826 at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:133)
      00:00:04.826 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
      00:00:04.826 at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:991)
      00:00:04.826 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:972)
      00:00:04.826 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:948)
      00:00:04.826 at hudson.FilePath.act(FilePath.java:991)
      00:00:04.826 at hudson.FilePath.act(FilePath.java:969)
      00:00:04.826 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:897)
      00:00:04.826 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:833)
      00:00:04.826 at hudson.scm.SCM.checkout(SCM.java:485)
      00:00:04.826 at hudson.model.AbstractProject.checkout(AbstractProject.java:1277)
      00:00:04.826 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
      00:00:04.826 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      00:00:04.826 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
      00:00:04.827 at hudson.model.Run.execute(Run.java:1741)
      00:00:04.827 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      00:00:04.827 at hudson.model.ResourceController.execute(ResourceController.java:98)
      00:00:04.827 at hudson.model.Executor.run(Executor.java:381)
      00:00:04.827 Caused by: org.tmatesoft.svn.core.SVNException: svn: E210004: Malformed network data
      00:00:04.827 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
      00:00:04.827 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readChar(SVNReader.java:478)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.skipWhiteSpace(SVNReader.java:485)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readTuple(SVNReader.java:287)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNReader.parse(SVNReader.java:241)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.read(SVNConnection.java:276)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:174)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:1276)
      00:00:04.827 at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getDatedRevision(SVNRepositoryImpl.java:191)
      00:00:04.827 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:178)
      00:00:04.827 at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:187)
      00:00:04.827 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
      00:00:04.827 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:756)
      00:00:04.827 at org.tmatesoft.svn.core.internal.wcP2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
      00:00:04.828 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
      00:00:04.828 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
      00:00:04.828 at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
      00:00:04.828 at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259)
      00:00:04.828 at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
      00:00:04.828 at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:115)
      00:00:04.828 ... 20 more

          [JENKINS-30196] SVN Exception : svn: E210004: Malformed network data

          João Leonardo Pereira added a comment - https://issues.jenkins-ci.org/browse/JENKINS-30196?focusedCommentId=240279&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-240279 Here is my full log

          João Leonardo Pereira added a comment - - edited

          I've made some others tests and I can checkout and update normally with the svnkit 1.8.11 directly from command line (with the jsvn shell script from svnkit). I guess the problem can be related with how subversion plugin handles authentication credentials with svnkit

          João Leonardo Pereira added a comment - - edited I've made some others tests and I can checkout and update normally with the svnkit 1.8.11 directly from command line (with the jsvn shell script from svnkit). I guess the problem can be related with how subversion plugin handles authentication credentials with svnkit

          Code changed in jenkins
          User: Yves Martin
          Path:
          pom.xml
          http://jenkins-ci.org/commit/subversion-plugin/d57da37813727aff0ad75b282856760b5099ac7d
          Log:
          JENKINS-30196 Update SVNKit dependency to 1.8.11

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Yves Martin Path: pom.xml http://jenkins-ci.org/commit/subversion-plugin/d57da37813727aff0ad75b282856760b5099ac7d Log: JENKINS-30196 Update SVNKit dependency to 1.8.11

          Brian Cribbs added a comment -

          I'm just here to +1 this. I've tried every version of the plugin to no avail. I can use SVNkit from the command line no problem but Jenkins gets this error. We are using the svn:// protocol.

          Brian Cribbs added a comment - I'm just here to +1 this. I've tried every version of the plugin to no avail. I can use SVNkit from the command line no problem but Jenkins gets this error. We are using the svn:// protocol.

          quadmasta, I could not reproduce it. If you help me on this part, I'll work on it.

          Manuel Recena Soto added a comment - quadmasta , I could not reproduce it. If you help me on this part, I'll work on it.

          Brian Cribbs added a comment -

          I don't know how I could help you replicate the configuration scenario we've got.

          Jenkins is running in Tomcat on a server in Azure.
          Subversion is running on a Linux server on-premise with a VPN link between them.
          If I SSH into the Jenkins server using the same user that Tomcat runs as, I can execute the raw SVN commands on the command line successfully. I can also execute the svnkit commands successfully from the command line on the server

          Brian Cribbs added a comment - I don't know how I could help you replicate the configuration scenario we've got. Jenkins is running in Tomcat on a server in Azure. Subversion is running on a Linux server on-premise with a VPN link between them. If I SSH into the Jenkins server using the same user that Tomcat runs as, I can execute the raw SVN commands on the command line successfully. I can also execute the svnkit commands successfully from the command line on the server

          quadmasta, VPN??? I'm sorry but I cannot reproduce this environment.

          Manuel Recena Soto added a comment - quadmasta , VPN??? I'm sorry but I cannot reproduce this environment.

          Brian Cribbs added a comment -

          The problem isn't with the environment, it's 100% related to the plugin. If I force it to download a specific revision or HEAD by putting @HEAD or @Revision in the URL it works. Based on this I think the code that's trying to create a revision using a date is failing and the subversion server can't figure out what to do.

          amitejelex Can you see if adding @HEAD to your SVN URL also fixes your issue?

          Brian Cribbs added a comment - The problem isn't with the environment, it's 100% related to the plugin. If I force it to download a specific revision or HEAD by putting @HEAD or @Revision in the URL it works. Based on this I think the code that's trying to create a revision using a date is failing and the subversion server can't figure out what to do. amitejelex Can you see if adding @HEAD to your SVN URL also fixes your issue?

          quadmasta, if you provide a step by step process to reproduce the bug, I'll work on it.

          Manuel Recena Soto added a comment - quadmasta , if you provide a step by step process to reproduce the bug, I'll work on it.

          Brian Cribbs added a comment -

          I don't know exactly what's causing it so I don't know how to tell you to replicate it.

          If I enter the URL with @HEAD or a specific revision number, it works
          Updating svn://foo.com/svn/project/trunk@HEAD at revision HEAD

          If I enter the URL without a revision, it blows up
          Updating svn://foo.com/svn/project/trunk at revision '2015-12-11T20:42:38.326 +0000'

          date -u on the jenkins server outputs
          Fri Dec 11 20:40:27 UTC 2015

          date -u on the subversion server outputs
          Fri Dec 11 21:12:18 UTC 2015

          The format of the output in the logs leads me to believe that r.getDate() == null

          CheckoutUpdater.java
          private static final FastDateFormat fmt = FastDateFormat.getInstance("''yyyy-MM-dd'T'HH:mm:ss.SSS Z''");
          ---snip---
          SVNRevision r = getRevision(location);
          
                              String revisionName = r.getDate() != null ?
                              		fmt.format(r.getDate()) : r.toString();
                          	
                              listener.getLogger().println("Checking out " + location.remote + " at revision " + revisionName);
          ---snip---
          
          SVNRevision.java
           /**
               * Gives a string representation of this object.
               * 
               * @return a string representing this object
               */
              public String toString() {
                  if (myRevision >= 0) {
                      return Long.toString(myRevision);
                  } else if (myName != null) {
                      return myName;
                  } else if (myDate != null) {
                      return DateFormat.getDateTimeInstance().format(myDate);
                  }
                  return "{invalid revision}";
              }
          

          If you can tell me what repository I need to add to maven to get it to resolve the jenkins plugin stuff I'll throw a bunch of logging in this, build it, and run it on my server

          Brian Cribbs added a comment - I don't know exactly what's causing it so I don't know how to tell you to replicate it. If I enter the URL with @HEAD or a specific revision number, it works Updating svn://foo.com/svn/project/trunk@HEAD at revision HEAD If I enter the URL without a revision, it blows up Updating svn://foo.com/svn/project/trunk at revision '2015-12-11T20:42:38.326 +0000' date -u on the jenkins server outputs Fri Dec 11 20:40:27 UTC 2015 date -u on the subversion server outputs Fri Dec 11 21:12:18 UTC 2015 The format of the output in the logs leads me to believe that r.getDate() == null CheckoutUpdater.java private static final FastDateFormat fmt = FastDateFormat.getInstance( " ''yyyy-MM-dd' T 'HH:mm:ss.SSS Z' '" ); ---snip--- SVNRevision r = getRevision(location); String revisionName = r.getDate() != null ? fmt.format(r.getDate()) : r.toString(); listener.getLogger().println( "Checking out " + location.remote + " at revision " + revisionName); ---snip--- SVNRevision.java /** * Gives a string representation of this object. * * @ return a string representing this object */ public String toString() { if (myRevision >= 0) { return Long .toString(myRevision); } else if (myName != null ) { return myName; } else if (myDate != null ) { return DateFormat.getDateTimeInstance().format(myDate); } return "{invalid revision}" ; } If you can tell me what repository I need to add to maven to get it to resolve the jenkins plugin stuff I'll throw a bunch of logging in this, build it, and run it on my server

            recena Manuel Recena Soto
            amitejelex Amitej Priyadarshi
            Votes:
            3 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: