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

SVN Exception : svn: E210004: Malformed network data

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Blocker
    • Resolution: Unresolved
    • Component/s: subversion-plugin
    • Labels:
      None
    • Environment:
      Jenkins 1.624
      Subversion Plug-in 2.5
    • Similar Issues:

      Description

      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

        Attachments

          Issue Links

            Activity

            Hide
            quadmasta 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

            Show
            quadmasta 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
            Hide
            recena Manuel Recena Soto added a comment -

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

            Show
            recena Manuel Recena Soto added a comment - Brian Cribbs , VPN??? I'm sorry but I cannot reproduce this environment.
            Hide
            quadmasta 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.

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

            Show
            quadmasta 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. Amitej Priyadarshi Can you see if adding @HEAD to your SVN URL also fixes your issue?
            Hide
            recena Manuel Recena Soto added a comment -

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

            Show
            recena Manuel Recena Soto added a comment - Brian Cribbs , if you provide a step by step process to reproduce the bug, I'll work on it.
            Hide
            quadmasta 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

            Show
            quadmasta 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

              People

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

                Dates

                • Created:
                  Updated: