jenkinsci / jenkinsci/git-plugin
[JENKINS-20410] Cleaning a git repo fails with NFD characters
- Dominant language
- Java
- Stars
- 694
- Forks
- 1.1k
- Avg merge
- 1h 29m
- Merged PRs (30d)
- 3
Description
After upgrading to 1.583 from an older release, Jenkins now fails to clear the workspace. This seems to be cause by one of our tests which contains a file encoded in Normalized Decomposed Form (NFD). The backtrace is:
Wiping out workspace first.
java.io.IOException: java.lang.reflect.InvocationTargetException
at hudson.Util.isSymlinkJava7(Util.java:366)
at hudson.Util.isSymlink(Util.java:331)
at hudson.Util.deleteRecursive(Util.java:297)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.FilePath$13.invoke(FilePath.java:1090)
at hudson.FilePath$13.invoke(FilePath.java:1087)
at hudson.FilePath.act(FilePath.java:912)
at hudson.FilePath.act(FilePath.java:885)
at hudson.FilePath.deleteContents(FilePath.java:1087)
at hudson.plugins.git.extensions.impl.WipeWorkspace.beforeCheckout(WipeWorkspace.java:28)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:858)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:557)
at hudson.model.Run.execute(Run.java:1665)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor985.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.Util.isSymlinkJava7(Util.java:361)
... 26 more
Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable chacraters: /var/lib/jenkins/jobs/csync-source-dav/workspace/tests/ownCloud/toremote1/rtl2/??mettre.xls
at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
at sun.nio.fs.UnixPath.(UnixPath.java:71)
at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
at java.io.File.toPath(File.java:2178)
Subsequently, the project folder can no longer be cleared.
Did the way cleaning happens change in the last versions? I noticed that the GUI changed from a bunch of checkbox options to addable and reorderable actions.
---
Originally reported by danimo, imported from: Cleaning a git repo fails with NFD characters
Raw content of original issue
After upgrading to 1.583 from an older release, Jenkins now fails to clear the workspace. This seems to be cause by one of our tests which contains a file encoded in Normalized Decomposed Form (NFD). The backtrace is:
Wiping out workspace first.
java.io.IOException: java.lang.reflect.InvocationTargetException
at hudson.Util.isSymlinkJava7(Util.java:366)
at hudson.Util.isSymlink(Util.java:331)
at hudson.Util.deleteRecursive(Util.java:297)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.Util.deleteRecursive(Util.java:298)
at hudson.Util.deleteContentsRecursive(Util.java:204)
at hudson.FilePath$13.invoke(FilePath.java:1090)
at hudson.FilePath$13.invoke(FilePath.java:1087)
at hudson.FilePath.act(FilePath.java:912)
at hudson.FilePath.act(FilePath.java:885)
at hudson.FilePath.deleteContents(FilePath.java:1087)
at hudson.plugins.git.extensions.impl.WipeWorkspace.beforeCheckout(WipeWorkspace.java:28)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:858)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:557)
at hudson.model.Run.execute(Run.java:1665)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor985.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.Util.isSymlinkJava7(Util.java:361)
... 26 more
Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable chacraters: /var/lib/jenkins/jobs/csync-source-dav/workspace/tests/ownCloud/toremote1/rtl2/??mettre.xls
at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
at sun.nio.fs.UnixPath.<init>(UnixPath.java:71)
at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
at java.io.File.toPath(File.java:2178)Subsequently, the project folder can no longer be cleared.
Did the way cleaning happens change in the last versions? I noticed that the GUI changed from a bunch of checkbox options to addable and reorderable actions.
- environment:
openSUSE 12.3
Contributor guide
Assessment
This issue has not been assessed yet.