We are using Git SCM;
The git remote repository is managed by stash;
We specify urL: ssh://g...@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://g...@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)
|