-
Bug
-
Resolution: Not A Defect
-
Major
-
None
-
only see this after upgrading to Hudson ver. 1.379
-
Powered by SuggestiMate
ERROR: Failed to archive artifacts: */target/, **/pom.xml, **/hs.log
hudson.util.IOException2: java.io.IOException: request to write '3977' bytes exceeds size in header of '41955006' bytes for entry 'trunk/system-tests/target/temp/CrashDgcServerMapActiveActiveExpressTest/DgcClearCacheClient/logs/client.log'
at hudson.FilePath.copyRecursiveTo(FilePath.java:1507)
at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:117)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:601)
at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:580)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:595)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:528)
at hudson.model.Run.run(Run.java:1303)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:293)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:137)
- is duplicated by
-
JENKINS-20187 TarArchiver.visit produces corrupt archive when file size changes during write
-
- Closed
-
[JENKINS-7695] archiving throws hudson.util.IOException2: java.io.IOException: request to write '3977' bytes exceeds size in header of '41955006'
I am seeing this issue in 1.555 :
11:12:54 ERROR: Failed to archive artifacts: *.log 11:12:54 java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: request to write '8192' bytes exceeds size in header of '26982170' bytes for entry 'output.log' 11:12:54 at hudson.FilePath.copyRecursiveTo(FilePath.java:2017) 11:12:54 at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:57) 11:12:54 at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:140) 11:12:54 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 11:12:54 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804) 11:12:54 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776) 11:12:54 at hudson.model.Build$BuildExecution.post2(Build.java:183) 11:12:54 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725) 11:12:54 at hudson.model.Run.execute(Run.java:1701) 11:12:54 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 11:12:54 at hudson.model.ResourceController.execute(ResourceController.java:88) 11:12:54 at hudson.model.Executor.run(Executor.java:231) 11:12:54 Caused by: java.util.concurrent.ExecutionException: java.io.IOException: request to write '8192' bytes exceeds size in header of '26982170' bytes for entry 'output.log' 11:12:54 at hudson.remoting.Channel$3.adapt(Channel.java:755) 11:12:54 at hudson.remoting.Channel$3.adapt(Channel.java:750) 11:12:54 at hudson.remoting.FutureAdapter.get(FutureAdapter.java:55) 11:12:54 at hudson.FilePath.copyRecursiveTo(FilePath.java:2015) 11:12:54 ... 11 more 11:12:54 Caused by: java.io.IOException: request to write '8192' bytes exceeds size in header of '26982170' bytes for entry 'output.log' 11:12:54 at hudson.org.apache.tools.tar.TarOutputStream.write(TarOutputStream.java:284) 11:12:54 at hudson.util.io.TarArchiver.visit(TarArchiver.java:114) 11:12:54 at hudson.util.DirScanner.scanSingle(DirScanner.java:49) 11:12:54 at hudson.FilePath$ExplicitlySpecifiedDirScanner.scan(FilePath.java:2541) 11:12:54 at hudson.FilePath.writeToTar(FilePath.java:2053) 11:12:54 at hudson.FilePath.access$1000(FilePath.java:172) 11:12:54 at hudson.FilePath$41.invoke(FilePath.java:1994) 11:12:54 at hudson.FilePath$41.invoke(FilePath.java:1990) 11:12:54 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2462) 11:12:54 at hudson.remoting.UserRequest.perform(UserRequest.java:118) 11:12:54 at hudson.remoting.UserRequest.perform(UserRequest.java:48) 11:12:54 at hudson.remoting.Request$2.run(Request.java:328) 11:12:54 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 11:12:54 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 11:12:54 at java.util.concurrent.FutureTask.run(FutureTask.java:138) 11:12:54 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 11:12:54 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 11:12:54 at java.lang.Thread.run(Thread.java:662) 11:12:54 Build step 'Archive the artifacts' changed build result to FAILURE
I am seeing this in 1.571:
ERROR: Failed to archive artifacts: *.log java.io.IOException: java.io.IOException: Failed to extract /var/lib/jenkins/workspace/OneOneOne/transfer of 6 files at hudson.FilePath.readFromTar(FilePath.java:2119) at hudson.FilePath.copyRecursiveTo(FilePath.java:2031) at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:61) at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:183) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:736) at hudson.model.Build$BuildExecution.post2(Build.java:183) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:685) at hudson.model.Run.execute(Run.java:1757) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:234) Caused by: java.io.IOException: unexpected EOF with 1921 bytes unread at hudson.org.apache.tools.tar.TarInputStream.read(TarInputStream.java:349) at java.io.FilterInputStream.read(FilterInputStream.java:90) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769) at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744) at hudson.util.IOUtils.copy(IOUtils.java:40) at hudson.FilePath.readFromTar(FilePath.java:2109) ... 12 more at hudson.FilePath.copyRecursiveTo(FilePath.java:2038) at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:61) at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:183) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:736) at hudson.model.Build$BuildExecution.post2(Build.java:183) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:685) at hudson.model.Run.execute(Run.java:1757) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:234) Caused by: java.util.concurrent.ExecutionException: java.io.IOException: request to write '4053' bytes exceeds size in header of '85889' bytes for entry 'models.log' at hudson.remoting.Channel$3.adapt(Channel.java:772) at hudson.remoting.Channel$3.adapt(Channel.java:767) at hudson.remoting.FutureAdapter.get(FutureAdapter.java:59) at hudson.FilePath.copyRecursiveTo(FilePath.java:2034) ... 11 more Caused by: java.io.IOException: request to write '4053' bytes exceeds size in header of '85889' bytes for entry 'models.log' at hudson.org.apache.tools.tar.TarOutputStream.write(TarOutputStream.java:284) at hudson.util.io.TarArchiver.visit(TarArchiver.java:114) at hudson.util.DirScanner.scanSingle(DirScanner.java:49) at hudson.FilePath$ExplicitlySpecifiedDirScanner.scan(FilePath.java:2571) at hudson.FilePath.writeToTar(FilePath.java:2083) at hudson.FilePath.access$1000(FilePath.java:180) at hudson.FilePath$41.invoke(FilePath.java:2024) at hudson.FilePath$41.invoke(FilePath.java:2020) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2492) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:328) 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 hudson.remoting.Engine$1$1.run(Engine.java:63) at java.lang.Thread.run(Thread.java:701) Build step 'Archive the artifacts' changed build result to FAILURE
Also see this in 1.582
11:33:56 ERROR: Failed to archive artifacts: _test/**
11:33:56 java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: request to write '1757' bytes exceeds size in header of '132283' bytes for entry '_test/output.log'
11:33:56 at hudson.FilePath.copyRecursiveTo(FilePath.java:2039)
11:33:56 at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:61)
11:33:56 at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:217)
11:33:56 at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:74)
11:33:56 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
11:33:56 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
11:33:56 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734)
11:33:56 at hudson.model.Build$BuildExecution.post2(Build.java:183)
11:33:56 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683)
11:33:56 at hudson.model.Run.execute(Run.java:1770)
11:33:56 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
11:33:56 at hudson.model.ResourceController.execute(ResourceController.java:89)
11:33:56 at hudson.model.Executor.run(Executor.java:240)
11:33:56 Caused by: java.util.concurrent.ExecutionException: java.io.IOException: request to write '1757' bytes exceeds size in header of '132283' bytes for entry '_test/output.log'
11:33:56 at hudson.remoting.Channel$3.adapt(Channel.java:772)
11:33:56 at hudson.remoting.Channel$3.adapt(Channel.java:767)
11:33:56 at hudson.remoting.FutureAdapter.get(FutureAdapter.java:55)
11:33:56 at hudson.FilePath.copyRecursiveTo(FilePath.java:2037)
11:33:56 ... 12 more
Am also experiencing similar, in 1.596.2
17:13:41 GMT+01:00 Archiving artifacts 17:13:43 GMT+01:00 ERROR: Failed to archive artifacts: LOGS/,target/**/LOGS/,target/robotframework/ 17:13:43 GMT+01:00 java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: request to write '3085' bytes exceeds size in header of '2581956' bytes for entry 'target/path/to/file_20_05_2015.log' 17:13:43 GMT+01:00 at hudson.FilePath.copyRecursiveTo(FilePath.java:2213) 17:13:43 GMT+01:00 at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:61) 17:13:43 GMT+01:00 at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:218) 17:13:43 GMT+01:00 at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:74) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.flexible_publish.builder.FailFastBuilder.perform(FailFastBuilder.java:102) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.run_condition.BuildStepRunner$2.run(BuildStepRunner.java:110) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail.conditionalRun(BuildStepRunner.java:154) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.run_condition.BuildStepRunner.perform(BuildStepRunner.java:105) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.flexible_publish.strategy.FailFastExecutionStrategy.perform(FailFastExecutionStrategy.java:63) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.flexible_publish.ConditionalPublisher.perform(ConditionalPublisher.java:206) 17:13:43 GMT+01:00 at org.jenkins_ci.plugins.flexible_publish.FlexiblePublisher.perform(FlexiblePublisher.java:124) 17:13:43 GMT+01:00 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 17:13:43 GMT+01:00 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) 17:13:43 GMT+01:00 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734) 17:13:43 GMT+01:00 at hudson.model.Build$BuildExecution.post2(Build.java:183) 17:13:43 GMT+01:00 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683) 17:13:43 GMT+01:00 at hudson.model.Run.execute(Run.java:1784) 17:13:43 GMT+01:00 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 17:13:43 GMT+01:00 at hudson.model.ResourceController.execute(ResourceController.java:89) 17:13:43 GMT+01:00 at hudson.model.Executor.run(Executor.java:240) 17:13:43 GMT+01:00 Caused by: java.util.concurrent.ExecutionException: java.io.IOException: request to write '3085' bytes exceeds size in header of '2581956' bytes for entry 'target/path/to/file_20_05_2015.log' 17:13:43 GMT+01:00 at hudson.remoting.Channel$3.adapt(Channel.java:784) 17:13:43 GMT+01:00 at hudson.remoting.Channel$3.adapt(Channel.java:779) 17:13:43 GMT+01:00 at hudson.remoting.FutureAdapter.get(FutureAdapter.java:55) 17:13:43 GMT+01:00 at hudson.FilePath.copyRecursiveTo(FilePath.java:2211) 17:13:43 GMT+01:00 ... 19 more 17:13:43 GMT+01:00 Caused by: java.io.IOException: request to write '3085' bytes exceeds size in header of '2581956' bytes for entry 'target/path/to/file_20_05_2015.log' 17:13:43 GMT+01:00 at hudson.org.apache.tools.tar.TarOutputStream.write(TarOutputStream.java:284) 17:13:43 GMT+01:00 at hudson.util.io.TarArchiver.visit(TarArchiver.java:114) 17:13:43 GMT+01:00 at hudson.util.DirScanner.scanSingle(DirScanner.java:49) 17:13:43 GMT+01:00 at hudson.FilePath$ExplicitlySpecifiedDirScanner.scan(FilePath.java:2764) 17:13:43 GMT+01:00 at hudson.FilePath.writeToTar(FilePath.java:2249) 17:13:43 GMT+01:00 at hudson.FilePath.access$2100(FilePath.java:191) 17:13:43 GMT+01:00 at hudson.FilePath$45.invoke(FilePath.java:2190) 17:13:43 GMT+01:00 at hudson.FilePath$45.invoke(FilePath.java:2186) 17:13:43 GMT+01:00 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2677) 17:13:43 GMT+01:00 at hudson.remoting.UserRequest.perform(UserRequest.java:121) 17:13:43 GMT+01:00 at hudson.remoting.UserRequest.perform(UserRequest.java:49) 17:13:43 GMT+01:00 at hudson.remoting.Request$2.run(Request.java:324) 17:13:43 GMT+01:00 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) 17:13:43 GMT+01:00 at java.util.concurrent.FutureTask.run(Unknown Source) 17:13:43 GMT+01:00 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 17:13:43 GMT+01:00 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 17:13:43 GMT+01:00 at hudson.remoting.Engine$1$1.run(Engine.java:63) 17:13:43 GMT+01:00 at java.lang.Thread.run(Unknown Source) 17:13:43 GMT+01:00 at ......remote call to HOSTNAME (Native Method) 17:13:43 GMT+01:00 at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1356) 17:13:43 GMT+01:00 at hudson.remoting.UserResponse.retrieve(UserRequest.java:221) 17:13:43 GMT+01:00 at hudson.remoting.Channel$3.adapt(Channel.java:782) 17:13:43 GMT+01:00 ... 22 more
Additional: 22-May-2015:
This seems to happen in our environment when one of the external processes, launched as part of our test suite, does not terminate when requested and is still writing to its log file whilst the archiver is trying to archive it.
This may be corroborated by the finding here: https://bugzilla.mozilla.org/show_bug.cgi?id=1037031
Judicious killing of processes during test tear-down has made the problem go away.
Have you tried disable flexible-publish for artifact manager?
As I look at the TarArchiver, it seems to require the size being written ahead and then exact number of bites to be written.
Use cases:
#1) file is still being appended
#2) Someone truncates the file
#3) the file gets deleted before it opens the input stream.
The safest thing is to copy the file to make sure none of that happens but it will slow things down and might not fit to disk at all. But since this is about #1 which tends to be lot more common than #2 or #3, making sure not to write more than initial length seems to be sufficient to fix this.
We're seeing this in Jenkins ver. 1.555.
What causes this issue ?