[JIRA] [core] (JENKINS-32716) Archive artefacts crashes on file names containing Unicode characters

8 views
Skip to first unread message

richard.moss@cyotek.com (JIRA)

unread,
Feb 1, 2016, 3:12:01 PM2/1/16
to jenkinsc...@googlegroups.com
Richard Moss created an issue
 
Jenkins / Bug JENKINS-32716
Archive artefacts crashes on file names containing Unicode characters
Issue Type: Bug Bug
Assignee: Unassigned
Components: core
Created: 01/Feb/16 8:11 PM
Environment: Server:
OS: Windows Home Server 2011 (64bit)
Jenkins: 1.646
JRE: 1.8.0_66-b18 according to /systeminfo
Installation: Windows Installer, Windows Service
Plugins:

Plugins:
ant: 1.2
antisamy-markup-formatter: 1.3
change-assembly-version-plugin: 1.5.1
credentials: 1.24
cvs: 2.12
email-ext: 2.40.5
external-monitor-job: 1.4
gravatar: 2.1
htmlpublisher: 1.10
javadoc: 1.3
junit: 1.10
ldap: 1.11
mailer: 1.16
mapdb-api: 1.0.6.0
matrix-auth: 1.2
matrix-project: 1.6
maven-plugin: 2.12.1
msbuild: 1.25
nunit: 0.17
pam-auth: 1.2
powershell: 1.3
scm-api: 1.0
script-security: 1.17
simple-theme-plugin: 0.3
ssh-credentials: 1.11
ssh-slaves: 1.10
subversion: 2.5.7
token-macro: 1.12.1
translation: 1.12
windows-slaves: 1.1
workflow-step-api: 1.13

Slave:
OS: Windows 10 Professional (64bit)
JRE: Version 8 update 71 (32bit)
Browser: Chrome
Installation: Windows Service
Labels: artifact unicode crash
Priority: Major Major
Reporter: Richard Moss

I created a simple project which didn't contain any build actions, only a post-build "archive artifacts" action. The project was supposed to pull a bunch of files out of SVN and dump them into a zip file, excluding certain files to make it easier for me to deploy.

One of the files however is named specialcharacters-ę.html - notice the non-ASCII character.

On attempting to "build" the project, the following content is dumped to the console log:

Archiving artifacts
ERROR: Failed to archive artifacts: **/*
java.io.IOException: java.io.IOException: Failed to extract E:\Jenkins\workspace\demo.cyotek.com/transfer of 151 files
	at hudson.FilePath.readFromTar(FilePath.java:2300)
	at hudson.FilePath.copyRecursiveTo(FilePath.java:2209)
	at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:61)
	at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:236)
	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
	at hudson.model.Build$BuildExecution.post2(Build.java:185)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
	at hudson.model.Run.execute(Run.java:1763)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:98)
	at hudson.model.Executor.run(Executor.java:410)
Caused by: java.io.FileNotFoundException: E:\Jenkins\jobs\demo.cyotek.com\builds\3\archive\features\specialcharacters-?.html (The filename, directory name, or volume label syntax is incorrect)
	at java.io.FileOutputStream.open0(Native Method)
	at java.io.FileOutputStream.open(Unknown Source)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at hudson.util.IOUtils.copy(IOUtils.java:38)
	at hudson.FilePath.readFromTar(FilePath.java:2290)
	... 13 more

	at hudson.FilePath.copyRecursiveTo(FilePath.java:2216)
	at jenkins.model.StandardArtifactManager.archive(StandardArtifactManager.java:61)
	at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:236)
	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
	at hudson.model.Build$BuildExecution.post2(Build.java:185)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
	at hudson.model.Run.execute(Run.java:1763)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:98)
	at hudson.model.Executor.run(Executor.java:410)
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: This archives contains unclosed entries.
	at hudson.remoting.Channel$2.adapt(Channel.java:813)
	at hudson.remoting.Channel$2.adapt(Channel.java:808)
	at hudson.remoting.FutureAdapter.get(FutureAdapter.java:59)
	at hudson.FilePath.copyRecursiveTo(FilePath.java:2212)
	... 12 more
Caused by: java.io.IOException: This archives contains unclosed entries.
	at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish(TarArchiveOutputStream.java:225)
	at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close(TarArchiveOutputStream.java:241)
	at hudson.util.io.TarArchiver.close(TarArchiver.java:111)
	at hudson.FilePath.writeToTar(FilePath.java:2263)
	at hudson.FilePath.access$2100(FilePath.java:190)
	at hudson.FilePath$45.invoke(FilePath.java:2202)
	at hudson.FilePath$45.invoke(FilePath.java:2198)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2719)
	at hudson.remoting.UserRequest.perform(UserRequest.java:120)
	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:68)
	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:62)
	at java.lang.Thread.run(Unknown Source)
	at ......remote call to JUPITER(Native Method)
	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416)
	at hudson.remoting.UserResponse.retrieve(UserRequest.java:220)
	at hudson.remoting.Channel$2.adapt(Channel.java:811)
	... 15 more
Build step 'Archive the artifacts' changed build result to FAILURE

Judging from the way it converted the ę to ? I assume it's an encoding issue of some sort.

I did a fairly brief search of issues but didn't find anything specific. I did found a note in one issue relating to console output, I tried adding -Dfile.encoding=UTF8 to jenkins.xml, restarted the service, and confirmed via /systeminfo that the encoding was now set to UTF8 however retrying to the build result in the same error.

The file is used as part of a test so is required to be named that way. Can you offer any suggestions on resolving the issue, or is it an an actual bug that I can't workaround?

I've classed it as major as I'm aware of no workaround save to rename the file - which isn't a solution in this case, but feel free to disagree with that assessment!

Thanks;

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.4.2#64017-sha1:e244265)
Atlassian logo

richard.moss@cyotek.com (JIRA)

unread,
Feb 1, 2016, 3:14:01 PM2/1/16
to jenkinsc...@googlegroups.com
Richard Moss updated an issue
Change By: Richard Moss
I created a simple project which didn't contain any build actions, only a post-build "archive artifacts" action. The project was supposed to pull a bunch of files out of SVN and dump them into a zip file, excluding certain files to make it easier for me to deploy.

One of the files however is named {{specialcharacters-ę.html}} - notice the non-ASCII character.

On attempting to "build" the project, the following content is dumped to the console log:

{noformat}
{noformat}


Judging from the way it converted the {{ę}} to {{?}} I assume it's an encoding issue of some sort.

I did a fairly brief search of issues but didn't find anything specific. I did  found  find  a note in one issue relating to console output  which stated that the encoding of Java was incorrect. Accordingly , I tried adding {{-Dfile.encoding=UTF8}} to {{jenkins.xml}}, restarted the service, and confirmed via /systeminfo that the encoding was now set to UTF8 however retrying to the build result in the same error.


The file is used as part of a test so is required to be named that way. Can you offer any suggestions on resolving the issue, or is it an an actual bug that I can't workaround?

I've classed it as major as I'm aware of no workaround save to rename the file - which isn't a solution in this case, but feel free to disagree with that assessment!

Thanks;
Reply all
Reply to author
Forward
0 new messages