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

CVS command fails when using ssh and password

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      I have jenkins running with tomcat 5.
      When I log in as tomcat or as username I can perform a check out of my project :

      export CVS_RSH=/usr/bin/ssh
      export CVSROOT=:ext:username@server:/path/to/my/cvs
      cvs co myproject
      # enter password
      

      When I let jenkins perform the check out it fails :

      Started by an SCM change
      Building remotely on Local slave in workspace .jenkins-slave/workspace/MYPROJECT
      Using locally configured password for connection to :ext:username@server:/path/to/my/cvs
      cvs checkout -P -D 24 Apr 2013 09:06:19 +0200 -d MYPROJECT myproject 
      ERROR: CVS Command failed: Can't find bundle for base name org.netbeans.lib.cvsclient.response.Bundle, locale en_US
      java.util.MissingResourceException: Can't find bundle for base name org.netbeans.lib.cvsclient.response.Bundle, locale en_US
      	at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1539)
      	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1278)
      	at java.util.ResourceBundle.getBundle(ResourceBundle.java:733)
      	at org.netbeans.lib.cvsclient.response.ResponseFactory.createResponse(ResponseFactory.java:126)
      	at org.netbeans.lib.cvsclient.Client.handleResponse(Client.java:645)
      	at org.netbeans.lib.cvsclient.Client.processRequests(Client.java:598)
      	at org.netbeans.lib.cvsclient.command.checkout.CheckoutCommand.execute(CheckoutCommand.java:348)
      	at org.netbeans.lib.cvsclient.Client.executeCommand(Client.java:710)
      	at hudson.scm.AbstractCvs$1.invoke(AbstractCvs.java:262)
      	at hudson.scm.AbstractCvs$1.invoke(AbstractCvs.java:242)
      	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2387)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      	at hudson.remoting.Request$2.run(Request.java:326)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:679)
      ERROR: Cvs task failed
      An attempt to send an e-mail to empty list of recipients, ignored.
      Finished: FAILURE
      

      I don't understand the error and I don't see why it wouldn't work when jenkins does it.

      Any idea ?

        Attachments

          Activity

          Hide
          mc1arke Michael Clarke added a comment -

          It seems that the cvs client is attempting to perform a locale specific action, but can't find the resource bundles to allow it to do this (the bundles are there in Git so there seems to be an issue with the build packaging them in the JAR).

          The action being attempted at the time you get this exception was the building of an exception message for an unknown response from the CVS server:

          Received unknown response from server:
           <p><tt>{0}</tt>
          <p>Check your setup please:
          <ul>
          <li>Are you connecting to supported CVS server?
          <li>Is not misconfigured <tt>CVS_SERVER{1}</tt> environment variable?
          <li>For <tt>:local:</tt> repositories:<br>
          What <tt>cvs</tt> binary is executed?<br>
          It is defined by <tt>CVS_EXE{2}</tt> environment variable.
          </ul>
          

          where

          {0}

          = responseName,

          {1}

          = cvsServer,

          {2}

          = cvsExe

          Could you confirm what version of CVS Server you're running, since that should be the only factor in this error message that impacts you?

          Show
          mc1arke Michael Clarke added a comment - It seems that the cvs client is attempting to perform a locale specific action, but can't find the resource bundles to allow it to do this (the bundles are there in Git so there seems to be an issue with the build packaging them in the JAR). The action being attempted at the time you get this exception was the building of an exception message for an unknown response from the CVS server: Received unknown response from server: <p><tt>{0}</tt> <p>Check your setup please: <ul> <li>Are you connecting to supported CVS server? <li>Is not misconfigured <tt>CVS_SERVER{1}</tt> environment variable? <li>For <tt>:local:</tt> repositories:<br> What <tt>cvs</tt> binary is executed?<br> It is defined by <tt>CVS_EXE{2}</tt> environment variable. </ul> where {0} = responseName, {1} = cvsServer, {2} = cvsExe Could you confirm what version of CVS Server you're running, since that should be the only factor in this error message that impacts you?
          Hide
          barthelemy Barthélémy von Haller added a comment -

          The cvs package installed on the machine is :
          cvs 1.11.22-11.el5_8.1

          it seems I have a problem with my cvs, doesn't it ?
          I will maybe try a different approach.

          Show
          barthelemy Barthélémy von Haller added a comment - The cvs package installed on the machine is : cvs 1.11.22-11.el5_8.1 it seems I have a problem with my cvs, doesn't it ? I will maybe try a different approach.
          Hide
          mc1arke Michael Clarke added a comment -

          Can you try running "cvs -d :ext:username:password@host:/path/to/project co myproject" from your command line and check that works (this is the same command run by the CVS Plugin)?

          If you do get a different approach working, please update this issue with comments so others can refer to it, and I can tell if there's something that needs fixing (other than the bundle issue you're initially seeing).

          Thanks,
          Michael

          Show
          mc1arke Michael Clarke added a comment - Can you try running "cvs -d :ext:username:password@host:/path/to/project co myproject" from your command line and check that works (this is the same command run by the CVS Plugin)? If you do get a different approach working, please update this issue with comments so others can refer to it, and I can tell if there's something that needs fixing (other than the bundle issue you're initially seeing). Thanks, Michael
          Hide
          barthelemy Barthélémy von Haller added a comment -

          I tried your command and it failed :

          cvs checkout: CVSROOT password specification is only valid for
          cvs checkout: pserver connection method.
          cvs [checkout aborted]: Bad CVSROOT: `:ext:username:password@host:/path/to/project'.
          

          but if I remove the password and give it manually afterward then it works.

          Show
          barthelemy Barthélémy von Haller added a comment - I tried your command and it failed : cvs checkout: CVSROOT password specification is only valid for cvs checkout: pserver connection method. cvs [checkout aborted]: Bad CVSROOT: `:ext:username:password@host:/path/to/project'. but if I remove the password and give it manually afterward then it works.
          Hide
          barthelemy Barthélémy von Haller added a comment -

          The original issue with the CVS server is now fixed so I can get the CVS check out without problem. For what I am concerned, we can close this issue. The only thing is that I didn't get the proper error message due to the problem with the missing resource.

          Thank you for your help

          Show
          barthelemy Barthélémy von Haller added a comment - The original issue with the CVS server is now fixed so I can get the CVS check out without problem. For what I am concerned, we can close this issue. The only thing is that I didn't get the proper error message due to the problem with the missing resource. Thank you for your help
          Hide
          mc1arke Michael Clarke added a comment -

          Whilst the stacktrace needs fixed (missing resource bundles), the root cause of this issue is that SSH password logins require a dynamic session which Jenkins can't provide. To use SSH, public key authentication would need to be used. This therefore isn't a defect.

          Show
          mc1arke Michael Clarke added a comment - Whilst the stacktrace needs fixed (missing resource bundles), the root cause of this issue is that SSH password logins require a dynamic session which Jenkins can't provide. To use SSH, public key authentication would need to be used. This therefore isn't a defect.

            People

            Assignee:
            mc1arke Michael Clarke
            Reporter:
            barthelemy Barthélémy von Haller
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: