Bug 1091191 - Jenkins cartridge InvalidPathException with é or '
Summary: Jenkins cartridge InvalidPathException with é or '
Keywords:
Status: CLOSED EOL
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: ImageStreams
Version: 2.2.0
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: ---
: ---
Assignee: Jason DeTiberus
QA Contact: libra bugs
URL:
Whiteboard:
Depends On: 1056666
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-25 07:19 UTC by Ma xiaoqiang
Modified: 2017-01-13 22:48 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 1056666
Environment:
Last Closed: 2017-01-13 22:48:12 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Ma xiaoqiang 2014-04-25 07:19:33 UTC
This issue exists on puddle [2.1/2014-04.22.2]

+++ This bug was initially created as a clone of Bug #1056666 +++

Description of problem:
If your Jenkins build project name contains a particular character, possible é or ' (single quote), it appears that there's some native IO error with the JVM trying to map this onto a system path.

Actual results:
java.io.IOException: java.lang.reflect.InvocationTargetException
	at hudson.Util.resolveSymlink(Util.java:1206)
	at jenkins.model.PeepholePermalink.updateCache(PeepholePermalink.java:146)
	at jenkins.model.PeepholePermalink.resolve(PeepholePermalink.java:118)
	at hudson.model.Job.getLastSuccessfulBuild(Job.java:802)
	at hudson.maven.AbstractMavenProject.createTransientActions(AbstractMavenProject.java:185)
	at hudson.maven.MavenModuleSet.createTransientActions(MavenModuleSet.java:448)
	at hudson.model.AbstractProject.updateTransientActions(AbstractProject.java:712)
	at hudson.maven.MavenModuleSet.updateTransientActions(MavenModuleSet.java:444)
	at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:755)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:214)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
	at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
	at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
	at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
	at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
	at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at hudson.Util.resolveSymlink(Util.java:1187)
	... 73 more
Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable chacraters: /var/lib/openshift/52dfeb94500446f58b00004c/app-root/data/jobs/Eric's WebProtégé/builds/lastSuccessfulBuild.tmp
	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:2186)
	... 77 more

Expected results:
Maybe fail to build, but at least try to.

--- Additional comment from Ben Parees on 2014-01-22 15:33:52 EST ---

This appears to be a limitation of jenkins itself:
http://jenkins-ci.361315.n4.nabble.com/Re-What-characters-are-illegal-to-include-in-job-names-td4678893.html

Have you seen this behavior work in a standalone jenkins environment?  If so, what version?  OpenShift currently uses Jenkins v1.509, but I don't see anything in the current code that would have changed this codepath.

--- Additional comment from Aidan Delaney on 2014-01-22 15:38:23 EST ---

Oh, sorry for the dodgy report then.  I've generally used the GitHub plugin in the past, example here:
http://54.194.213.207/job/Eric%27s%20WebProt%C3%A9g%C3%A9/
which seems to cope with these characters.

--- Additional comment from Ben Parees on 2014-01-22 17:01:37 EST ---

On further analysis this does seem to work in a standalone jenkins install, so there may be something different about our gear environment that doesn't tolerate those characters.  I'll dig further.

--- Additional comment from Ben Parees on 2014-01-23 14:22:57 EST ---

Interestingly this problem appears togo away if you do a restart of the jenkins cartridge.  I'm still investigating, but perhaps you can use that as a workaround for now.

--- Additional comment from Ben Parees on 2014-01-23 18:57:58 EST ---

fyi I determined the cause here is a missing LANG=en_US.UTF.8 environment variable, which i'll be adding shortly.

In the meantime, if you ssh into the gear and issue a "jenkins/bin/control restart" then you'll restart the process w/ the environment variable, as it exists correctly in the ssh shell.

if you do "rhc app restart jenkins" it will still not have it, so the actual workaround requires ssh'ing into the gear. (unless you explicitly add the LANG env variable to your jenkins app)

--- Additional comment from Ben Parees on 2014-01-23 18:58:15 EST ---

https://github.com/openshift/origin-server/pull/4578

--- Additional comment from openshift-github-bot on 2014-01-23 19:17:34 EST ---

Commit pushed to master at https://github.com/openshift/origin-server

https://github.com/openshift/origin-server/commit/718326d5835969eefc043ad63929b53e3edf443b
Bug 1056666 - Jenkins cartridge InvalidPathException with é or '

--- Additional comment from chunchen on 2014-01-24 05:24:07 EST ---

It's fixed, verified on devenv_4270, please refer to the following results:

1. Create an app with jenkins-client-1 app
rhc app create cphp4 php-5.4 --enable-jenkins

2. Log into the jenkins admin console from https://jenkins-cdm.dev.rhcloud.com/me/configure

3. Create job named "ccy'testé2"

4. Trigger this job build

the log messages like below:
<-------snip------>
FATAL: Could not apply tag jenkins-ccy'test?2-1
hudson.plugins.git.GitException: Could not apply tag jenkins-ccy'test?2-1
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:718)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1230)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1178)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2387)
	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
	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:72)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
Caused by: hudson.plugins.git.GitException: Error performing command: git tag -a -f -m Jenkins Build #1 jenkins-ccy'test?2-1
Command "git tag -a -f -m Jenkins Build #1 jenkins-ccy'test?2-1" returned status code 128: fatal: 'jenkins-ccy'test?2-1' is not a valid tag name.

	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:764)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:729)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:739)
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:716)
	... 11 more
Caused by: hudson.plugins.git.GitException: Command "git tag -a -f -m Jenkins Build #1 jenkins-ccy'test?2-1" returned status code 128: fatal: 'jenkins-ccy'test?2-1' is not a valid tag name.

	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:759)
	... 14 more

Comment 2 Brenton Leanhardt 2014-04-25 12:11:51 UTC
There is a trivial fix for this upstream.  We should queue this up for the next release.

Comment 3 Miciah Dashiel Butler Masters 2015-09-19 00:19:37 UTC
It looks like the fix for this defect was shipped in RHBA-2014:0487 "Red Hat OpenShift Enterprise 2.1 Release Advisory", but we forgot to attach the Bugzilla number to the advisory.  Can you please verify that the defect does not exist in OpenShift Enterprise 2.2?

Comment 4 Ma xiaoqiang 2015-09-21 06:42:41 UTC
Check on puddle [2.2.7/2015-18.2]

1. Create an app with jenkins-client-1 app
rhc app create cphp4 php-5.4 --enable-jenkins

2. Log into the jenkins admin console from https://jenkins-cdm.dev.rhcloud.com/me/configure

3. Click New Item, input the strings "ccy'testé2" and chose copying existing : input an existing job name

4. Trigger this job build

FATAL: Could not apply tag jenkins-ccy'test?2-1
hudson.plugins.git.GitException: Could not apply tag jenkins-ccy'test?2-1
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:718)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1230)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1178)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2688)
	at hudson.remoting.UserRequest.perform(UserRequest.java:121)
	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
	at hudson.remoting.Request$2.run(Request.java:325)
	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
	at ......remote call to cphp4bldr(Native Method)
	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1360)
	at hudson.remoting.UserResponse.retrieve(UserRequest.java:221)
	at hudson.remoting.Channel.call(Channel.java:753)
	at hudson.FilePath.act(FilePath.java:978)
	at hudson.FilePath.act(FilePath.java:967)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1178)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
	at hudson.model.Run.execute(Run.java:1741)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:98)
	at hudson.model.Executor.run(Executor.java:374)
Caused by: hudson.plugins.git.GitException: Error performing command: git tag -a -f -m Jenkins Build #1 jenkins-ccy'test?2-1

Comment 6 Rory Thrasher 2017-01-13 22:48:12 UTC
OpenShift Enterprise v2 has officially reached EoL.  This product is no longer supported and bugs will be closed.

Please look into the replacement enterprise-grade container option, OpenShift Container Platform v3.  https://www.openshift.com/container-platform/

More information can be found here: https://access.redhat.com/support/policy/updates/openshift/


Note You need to log in before you can comment on or make changes to this bug.