-
Bug
-
Resolution: Fixed
-
Critical
-
Debian 10 with jenkins from http://pkg.jenkins-ci.org/debian-stable
-
-
Jenkins 2.243
After upgrading from Jenkins 2.204.2 to 2.222.1, our builds started failing non-deterministically when trying to download artifacts.
It seems that Jenkins no longer honors the "--httpKeepAliveTimeout=60000" switch.
I confirmed that Jenkins is running with this switch.
Yet a download with a slow consumer will fail with a partial download. (for testing: "curl -f -u $jenkins_auth $artifact_url | (sleep 6; wc -c)"
On the server side, the log indicates that the command-line switch was ineffective and the default 5s timeout is still in use:
java.util.concurrent.TimeoutException: Idle timeout expired: 5000/5000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:171) at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) Caused: java.io.IOException at org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block(SharedBlockingCallback.java:234) at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:268) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:825) at org.kohsuke.stapler.Stapler.serveStaticResource(Stapler.java:612) at org.kohsuke.stapler.ResponseImpl.serveFile(ResponseImpl.java:216) at hudson.model.DirectoryBrowserSupport.serveFile(DirectoryBrowserSupport.java:370) at hudson.model.DirectoryBrowserSupport.generateResponse(DirectoryBrowserSupport.java:155) at org.kohsuke.stapler.HttpResponseRenderer$Default.handleHttpResponse(HttpResponseRenderer.java:124) at org.kohsuke.stapler.HttpResponseRenderer$Default.generateResponse(HttpResponseRenderer.java:69) at org.kohsuke.stapler.Function.renderResponse(Function.java:164) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:147) at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535)
The default 5s timeout is short enough that a simple "curl | tar xf" sometimes trips it when unpacking many small files on an overloaded VM. Please consider changing the default back to jetty's 30s.
- is related to
-
JENKINS-39909 Incomplete downloads of artifacts
- Open
-
JENKINS-42513 Increase default keep-alive timeouts
- Open
- links to