SCM checkout timeout when using HTTP Proxy

Article ID:115000057431
1 minute readKnowledge base

Issue

  • Build hang/timeout during SCM checkout from Jenkins. Checkout works fine from command line.

  • Slow requests during checkout, for example with Git:

"Handling GET /job/myFolder/job/myJob/descriptorByName/hudson.plugins.git.UserRemoteConfig/checkUrl from 127.0.0.1 : RequestHandlerThread[#123]" Id=12345 RUNNABLE (in native)
    at java.lang.ProcessImpl.waitForInterruptibly(Native Method)
    at java.lang.ProcessImpl.waitFor(ProcessImpl.java:449)
    at hudson.Proc$LocalProc.join(Proc.java:320)
    at hudson.Proc.joinWithTimeout(Proc.java:166)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1789)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1519)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1437)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1428)
    ...

Environment

Resolution

This could be due to the proxy configuration in Jenkins. Some SCM plugins provide support for the HTTP proxy server configured in Jenkins. You can check on the list in the article Jenkins Behind Proxy.

To solve/troubleshoot this, you can add wildcards to the No Proxy Host under Manage Jenkins  Manage Plugins  Advanced  HTTP Proxy Configuration to exclude repository URLs from the proxy.

For example, I do not want to use the HTTP proxy to checkout GitHub repositories, I can add the wildcard *github.com to the No Proxy Host section:

http proxy no proxy hosts