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

PerforceSCM fails to checkout due to wrong client spec

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Critical Critical
    • p4-plugin
    • None
    • Platform: Other, OS: Linux

      The perforce plugin 1.0.5 and previous versions fail to setup the client spec correctly and hence cannot
      sync/checkout the source code.

      The workspace object retrieved in the "checkout" method is completely un-initialised:
      Workspace p4workspace = getDepot().getWorkspaces().getWorkspace(p4Client);

      Here the exception output:
      Performing sync with Perforce for: //depot/products/dynamo/...
      Changing P4 Client Root to: /opt/hudson/data/jobs/dynamo/workspace/
      Changing P4 Client View to: //depot/products/dynamo/... ///...
      ...
      java.io.IOException: Unable to communicate with perforce. Error in client specification. Error detected
      at line 7. Null directory (//) not allowed in '///...'.
      For Command: p4 -s client -i
      With Data:
      ===================
      Client:
      Description:
      Root: /opt/hudson/data/jobs/dynamo/workspace/
      Options:
      LineEnd:
      View:
      //depot/products/dynamo/... ///...

      ===================

      at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:260)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:541)
      at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:223)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:189)
      at hudson.model.Run.run(Run.java:649)
      at hudson.model.Build.run(Build.java:102)
      at hudson.model.ResourceController.execute(ResourceController.java:70)
      at hudson.model.Executor.run(Executor.java:64)

      The perforce client binary displays this version (just in case):
      Perforce - The Fast Software Configuration Management System.
      Copyright 1995, 2002 Perforce Software. All rights reserved.
      Rev. P4/LINUX24X86/2003.1/46260 (2003/07/03).

      I currently have a workaround in place where i set the values from the configuration in PerforceSCM if
      they are unset:

      if ( p4workspace == null || p4workspace.length < 1) {
      p4workspace.setName(p4Client);
      ...
      }

      Cheers
      Eike

            digerata digerata
            edawid edawid
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: