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

Exception when use git plugin with ssh public key

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major Major
    • git-plugin
    • None
    • Jenkins 1.565.1; Git plugin 2.2.1

      We are using Git SCM;
      The git remote repository is managed by stash;
      We specify urL: ssh://git@hardware.corp.emc.com:7999/bf/test.git

      If we don't set Credentials(although I can clone the code from both master and slave node), the job can pull code to slave. However the SCM pooling will report below error:
      Failed to connect to repository : Command "git ls-remote -h ssh://git@hardware.corp.emc.com:7999/bf/test.git HEAD" returned status code 128:
      stdout:
      stderr: Permission denied (publickey).
      fatal: Could not read from remote repository.

      Please make sure you have the correct access rights
      and the repository exists.

      This polling issue is only seen in repositories managed in stash. In stash repositories, it cannot work if we remove .git from the clone url. However, the git pollign in jenkins have to work without .git suffix.

      For repository managed by gerrit, clone either with or without .git suffix will work. So if we do not .git in jenkins scm git config, polling will work without credentials specified.

      If we specify the repo url ending with .git, and at the same time if we set the credential(master's ssh id_rsa.pub), then the pooling will work, but the build will fail with below exception:

      Started by user sharon xia
      [EnvInject] - Loading node environment variables.
      Building remotely on GPS-NODE (x86-windows-6.1 6.1 x86-windows windows-6.1 windows x86) in workspace d:\hudson-slave\workspace\test-check
      FATAL: argument type mismatch
      java.lang.IllegalArgumentException: argument type mismatch
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:275)
      at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:256)
      at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215)
      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.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at hudson.remoting.Engine$1$1.run(Engine.java:58)
      at java.lang.Thread.run(Unknown Source)

            ndeloof Nicolas De Loof
            sharon_xia sharon xia
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: