Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-49049

Git committer with non-matching parens causes error

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • Jenkins ver. 2.19.4
      OS: Windows 2012 R2
      git-plugin ver. 3.0.5
      git-client-plugin ver. 2.2.1

      Hello,

      We started noticing an issue in some of our jobs that appeared to be related to a specific user. We were able to isolate the issue to a specific run of a job, then finally narrowed the actual issue down to information stored in the changelog.xml file for that specific job. 

      We found that if the committer contains an open parenthesis, but not a close parenthesis, it would error (stack trace included below). Likewise, the opposite errored as well (close paren, but no matching open paren). I would assume that there's some regex mapping happening that is getting confused when the open/close parens don't have their match.

      For example, "Lastname, Firstname (ABC-Something)" ... if for some reason this person committed as "Lastname, Firstname (ABC-Something" (most likely because of a typo in .gitconfig), then the error will occur.

      For testing, we manually changed a commiter in the changelog.xml file for a specific build and reloaded that job. We then browsed to "https://....../job/FancyJobName/123/api/json" to throw the error without having to run the job. We were able to add the closing paren, reload the job, and verify that the json loads correctly.

      Please let me know if there's anymore info I can provide for this issue. Thanks!

      Here's the stacktrace:

      java.io.IOException: Failed to write author
      at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:151)
      at org.kohsuke.stapler.export.Property.writeTo(Property.java:126)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:206)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
      at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
      at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      at org.kohsuke.stapler.export.Model.writeTo(Model.java:198)
      at org.kohsuke.stapler.ResponseImpl.writeOne(ResponseImpl.java:285)
      at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:276)
      at hudson.model.Api.doJson(Api.java:211)
      at sun.reflect.GeneratedMethodAccessor1019.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:324)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:167)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.MetaClass$3.doDispatch(MetaClass.java:196)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:233)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:233)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:232)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209)
      at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
      at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at hudson.plugins.collabnet.auth.CNFilter.doFilter(CNFilter.java:90)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      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:67)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      at org.eclipse.jetty.server.Server.handle(Server.java:499)
      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
      at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66)
      at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:145)
      ... 107 more
      Caused by: com.google.common.util.concurrent.UncheckedExecutionException: hudson.plugins.active_directory.CacheAuthenticationException: Authentication failed because there was a problem caching user Lastname, FirstName (TLA-City; nested exception is com.google.common.util.concurrent.UncheckedExecutionException: com4j.ComException: 80040e14 (Unknown error) : One or more errors occurred during processing of command. : .\invoke.cpp:517
      at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2234)
      at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
      at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4764)
      at jenkins.security.UserDetailsCache.loadUserByUsername(UserDetailsCache.java:127)
      at hudson.model.User$UserIDCanonicalIdResolver.resolveCanonicalId(User.java:1064)
      at hudson.model.User.get(User.java:398)
      at hudson.model.User.get(User.java:367)
      at hudson.plugins.git.GitChangeSet.findOrCreateUser(GitChangeSet.java:379)
      at hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:448)
      ... 113 more
      Caused by: hudson.plugins.active_directory.CacheAuthenticationException: Authentication failed because there was a problem caching user Lastname, FirstName (TLA-City; nested exception is com.google.common.util.concurrent.UncheckedExecutionException: com4j.ComException: 80040e14 (Unknown error) : One or more errors occurred during processing of command. : .\invoke.cpp:517
      at hudson.plugins.active_directory.ActiveDirectoryAuthenticationProvider.retrieveUser(ActiveDirectoryAuthenticationProvider.java:210)
      at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:55)
      at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:814)
      at jenkins.security.UserDetailsCache$Retriever.call(UserDetailsCache.java:172)
      at jenkins.security.UserDetailsCache$Retriever.call(UserDetailsCache.java:161)
      at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4767)
      at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
      at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
      at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
      at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
      ... 121 more
      Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com4j.ComException: 80040e14 (Unknown error) : One or more errors occurred during processing of command. : .\invoke.cpp:517
      at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2234)
      at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
      at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4764)
      at hudson.plugins.active_directory.ActiveDirectoryAuthenticationProvider.retrieveUser(ActiveDirectoryAuthenticationProvider.java:143)
      ... 130 more
      Caused by: com4j.ComException: 80040e14 (Unknown error) : One or more errors occurred during processing of command. : .\invoke.cpp:517
      at com4j.Wrapper.invoke(Wrapper.java:187)
      at com.sun.proxy.$Proxy78.execute(Unknown Source)
      at hudson.plugins.active_directory.ActiveDirectoryAuthenticationProvider.getDnOfUserOrGroup(ActiveDirectoryAuthenticationProvider.java:274)
      at hudson.plugins.active_directory.ActiveDirectoryAuthenticationProvider.access$000(ActiveDirectoryAuthenticationProvider.java:68)
      at hudson.plugins.active_directory.ActiveDirectoryAuthenticationProvider$1.call(ActiveDirectoryAuthenticationProvider.java:150)
      at hudson.plugins.active_directory.ActiveDirectoryAuthenticationProvider$1.call(ActiveDirectoryAuthenticationProvider.java:143)
      at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4767)
      at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
      at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
      at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
      at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
      ... 133 more
      Caused by: com4j.ComException: 80040e14 (Unknown error) : One or more errors occurred during processing of command. : .\invoke.cpp:517
      at com4j.Native.invoke(Native Method)
      at com4j.StandardComMethod.invoke(StandardComMethod.java:35)
      at com4j.Wrapper$InvocationThunk.call(Wrapper.java:356)
      at com4j.Task.invoke(Task.java:50)
      at com4j.ComThread.run0(ComThread.java:172)
      at com4j.ComThread.run(ComThread.java:153)

            Unassigned Unassigned
            seanwcom Sean Williams
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: