jenkinsci / jenkinsci/git-plugin

[JENKINS-20410] Cleaning a git repo fails with NFD characters

Open
#2,354 5 comments 0 reactions 0 assignees View on GitHub
component:git-plugin imported-jira-issue priority:major resolution:unresolved
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


  • status: Open
  • priority: Major
  • component(s): git-plugin
  • resolution: Unresolved
  • votes: 2
  • watchers: 4
  • imported: 2025-12-02

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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.