timja / jenkins-gh-issues-poc-06-18

0 stars 0 forks source link

[JENKINS-24317] Nullpointer Exception on build in version 1.576 can't see output and fails #5401

Closed timja closed 7 years ago

timja commented 10 years ago

I have a strange Problem after upgrading to 1.576.

After that i get a Nullpointer exception if i click on "deploy". You can't see the output under "Console output". The output on this page is the following you can see in the screenshot.

Log
FATAL: null
java.lang.NullPointerException

In the Background the build is working and he do it but you can't see and the output and it failes.

I tried to find some issues in the Logs. But the only thing was:

Log
Aug 19, 2014 12:05:00 PM WARNUNG hudson.model.Run getEnvironment
deprecated call to Run.getEnvironment
    at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:483)
Aug 19, 2014 12:05:00 PM WARNUNG hudson.model.Run getEnvironment
deprecated call to Run.getEnvironment
    at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:483)
Aug 19, 2014 12:05:00 PM WARNUNG hudson.plugins.git.GitTool$DescriptorImpl getInstallation
invalid gitTool selection Default
Aug 19, 2014 12:05:00 PM WARNUNG hudson.model.Run getEnvironment
deprecated call to Run.getEnvironment
    at hudson.plugins.git.GitSCM.getParamExpandedRepos(GitSCM.java:355)
Aug 19, 2014 12:05:00 PM WARNUNG hudson.plugins.git.GitTool$DescriptorImpl getInstallation
invalid gitTool selection Default
Aug 19, 2014 12:05:00 PM WARNUNG hudson.model.Run getEnvironment
deprecated call to Run.getEnvironment
    at hudson.plugins.git.GitSCM.getParamExpandedRepos(GitSCM.java:355)

Originally reported by stony, imported from: Nullpointer Exception on build in version 1.576 can't see output and fails
  • assignee: jglick
  • status: Resolved
  • priority: Critical
  • resolution: Fixed
  • resolved: 2017-01-04T14:02:58+00:00
  • imported: 2022/01/10
timja commented 10 years ago

mikepenz:

I get the same issue. Only solution right now is to let jenkins start a build.

timja commented 10 years ago

mikepenz:

Our log output is following:

Aug 19, 2014 1:26:09 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate
Caught exception evaluating: it.userName in /view/testproject/job/testproject/job/testproject_SendForm_Profiles_TEST/20/. Reason: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
at org.kohsuke.stapler.jelly.InternationalizedStringExpression.evaluateArguments(InternationalizedStringExpression.java:152)
at org.kohsuke.stapler.jelly.InternationalizedStringExpression.access$000(InternationalizedStringExpression.java:56)
at org.kohsuke.stapler.jelly.InternationalizedStringExpression$1.evaluate(InternationalizedStringExpression.java:166)
at org.apache.commons.jelly.impl.ExpressionScript.run(ExpressionScript.java:66)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
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:86)
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:164)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at org.eclipse.jetty.ajp.Ajp13Connection.access$2900(Ajp13Connection.java:45)
at org.eclipse.jetty.ajp.Ajp13Connection$RequestHandler.headerComplete(Ajp13Connection.java:237)
at org.eclipse.jetty.ajp.Ajp13Parser.parseNext(Ajp13Parser.java:478)
at org.eclipse.jetty.ajp.Ajp13Parser.parseAvailable(Ajp13Parser.java:158)
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException

timja commented 10 years ago

stony:

Thats not very good... But ok i have installed the preview version and that was working.

timja commented 10 years ago

kerrhome:

Changed version mentioned in Summary to reflect the same version discussed in the Description.

timja commented 10 years ago

mikepenz:

Ok i did some more research. I was not able to get the same log output a second time.

If a user tries to login it will show StackTrace: java.lang.NullPointerException
After a refresh the use is able to navigate through jenkins, without seeing the same error again.

If i click on the build button it shows the same Log Output as R. H. mentioned in the description.
This also happens on svn builds so it should not be caused by git

To mention it: We use LDAP as authorization

timja commented 10 years ago

stony:

Nice suggestion. We use LDAP, too.

timja commented 10 years ago

mikepenz:

R. H. if you open the jenkins security configuration page (configureSecurity) does it show an error for your ldap configuration?

timja commented 10 years ago

kerrhome:

I had opened Jenkins-24321, but I think it's the same as this. I didn't see anyone mention the NPE was login related, so I thought my NPE was unique. We use Active Directory and SVN. I'm see ing this during login, but can quickly go back to the login page and hit the "log in" button again and login without an NPE. It didn't matter if "Remember me on this computer" was checked or not. I can reproduce the NPE probably 100% of the time by logging out and attempting to login again. Seems like first attempt always fails.

timja commented 10 years ago

mikepenz:

Shannon Kerr - I can also reproduce this issue to 100%.

timja commented 10 years ago

danielbeck:

Is this related to JENKINS-24312? Does the description there make sense to any of you?

timja commented 10 years ago

mikepenz:

Not really. The login issue also happens if i logout and instantly try a login afterwards.

It's a critical issue for us because no user can trigger a build right now. Just a small workaround (let jenkins start the build (start build by time * * * * * and remove this afterwards)) works.

We will have to reset the whole jenkins server to a previous state if this can't be solved in the next two days. (We got daily backups)

timja commented 10 years ago

stony:

@Daniel Beck: Not thats not the Problem.

@Mike Penz: You can very easy download an older .deb file and install it. Thats no problem. Go to the last Version and its working well.

timja commented 10 years ago

kerrhome:

I agree with mikepenz, unrelated.

timja commented 10 years ago

danielbeck:

Would be great if everyone affected could clarify a few points:

timja commented 10 years ago

sahirmemon:

Here is what's happening with my version.

  1. I can log in using Open ID Plugin (Google)
  2. Happens when build are triggered manually. Console output is simply:
    FATAL: null
    java.lang.NullPointerException
  3. Haven't tried downgrading yet. Upgraded from 1.575.
  4. Open ID authorization (latest)
  5. Affected users have uppercase letters in name.
timja commented 10 years ago

danielbeck:

Alright, I was able to repro this. It looks like the fix for JENKINS-23872 did this. Weirdly enough I cannot even log in, so my failure mode is a bit different.

java.lang.NullPointerException
    at java.lang.String$CaseInsensitiveComparator.compare(String.java:1177)
    at java.lang.String$CaseInsensitiveComparator.compare(String.java:1170)
    at java.lang.String.compareToIgnoreCase(String.java:1220)
    at hudson.util.CaseInsensitiveComparator.compare(CaseInsensitiveComparator.java:40)
    at hudson.util.CaseInsensitiveComparator.compare(CaseInsensitiveComparator.java:34)
    at jenkins.model.IdStrategy$CaseInsensitive.compare(IdStrategy.java:160)
    at jenkins.model.IdStrategy.equals(IdStrategy.java:78)
    at hudson.model.User.getOrCreate(User.java:393)
    at hudson.model.User.getAll(User.java:475)
    at hudson.model.User$FullNameIdResolver.resolveCanonicalId(User.java:903)
    at hudson.model.User.get(User.java:358)
    at hudson.model.User.get(User.java:331)
    at hudson.security.HudsonPrivateSecurityRealm.loadUserByUsername(HudsonPrivateSecurityRealm.java:165)
    at hudson.security.HudsonPrivateSecurityRealm.authenticate(HudsonPrivateSecurityRealm.java:176)
    at hudson.security.HudsonPrivateSecurityRealm.authenticate(HudsonPrivateSecurityRealm.java:94)
    at hudson.security.AbstractPasswordBasedSecurityRealm.doAuthenticate(AbstractPasswordBasedSecurityRealm.java:114)

Should only affect users with uppercase letters in their name. Please comment if that is not the case.

timja commented 10 years ago

sahirmemon:

When I log in, I get this error.

javax.servlet.ServletException: java.lang.NullPointerException
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:778)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
    at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:210)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    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:86)
    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:164)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:370)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.NullPointerException

At this point if you click on Jenkins (left link) in the nav bar, you arrive at your dashboard.

timja commented 10 years ago

kerrhome:

I have uppercase letters in my name, but not my login (user) name.

To respond to your questions, danielbeck:
1. This is my sandbox Jenkins instance and it uses AD authentication, but I was able to verify that others on my team were able to reproduce this on my sandbox.
2. I've not built yet, so I cannot say about console.
3. I wanted to try things out before attempting to downgrade, but I'll give that a try and report back.
4. AD, AD plugin. Latest and greatest official version
5. My name appears as "Shannon Kerr", but my user login ID is "skerr"

The other person I had try to login to the sandbox Jenkins did not get the NPE the first time they tried to login. They did logout and got the NPE on the second try. His username is all in lowercase, while his actual name is typical First Last.

timja commented 10 years ago

danielbeck:

Commented on https://github.com/jenkinsci/jenkins/commit/46c58c52256c16dff076b92a97290f3930e3d49c how to reproduce the problem.

Assigning to Stephen.

timja commented 10 years ago

danielbeck:

Likely Workaround:

  1. Open the folder $JENKINS_HOME/users
  2. Rename all folders with uppercase letters to their lowercase equivalent (Foo3 -> foo3).

This is what the broken code is trying to do anyway. You will need to check and possibly fix your permissions assignments afterwards, as this changes the ID of the affected users.

timja commented 10 years ago

danielbeck:

Thanks for the response Shannon. IIRC when logging in the first time it iterates over all users – so if you have any user with uppercase letters, it's possible that one breaks the login page.

timja commented 10 years ago

mikepenz:

@Danilel Beck

we had one user with an uppercase letter. I've renamed it to only contain lower-case letters and it works now again.

This fixes the login, and the build trigger. We also had an issue with the mail plugin which also gave an null-pointer i will look if this also solves this issue.

Thanks

timja commented 10 years ago

pleibiger:

My users are authenticating via Crowd, I can not just rename the folders.
Guess I have to roll back.

timja commented 10 years ago

kerrhome:

Reverted to Jenkins 1.575 fixes the issue for me.

timja commented 10 years ago

danielbeck:

pleibiger:

My users are authenticating via Crowd, I can not just rename the folders.
Guess I have to roll back.

Actually, you can. 1.566 added a new API for user name normalization (JENKINS-22247), and the default is "case insensitive" (by making everything lowercase all the time). Renaming all folders to lowercase is what the migration code is attempting to do since 1.576 (JENKINS-23872) but fails, so you're not doing anything Jenkins wouldn't do (if it could).

timja commented 10 years ago

lavahot:

Upgraded to 1.576 and have this exact problem. All jobs (even entirely empty ones) will immediately fail and display this message. Also had the issue where images were not coming up (JENKINS-24316). We are basically crippled without our Jenkins jobs. Please, please, please fix this issue as quickly as you possibly can. Thank you.

timja commented 10 years ago

mfriedenhagen:

I can confirm that builds work again after moving all user directories to lowercase.

timja commented 10 years ago

kerrhome:

I can also confirm this. We had a single account that had uppercase letters in it. Changed this and upgraded to 1.576 and no login issues after repeated attempts.

timja commented 10 years ago

adriankirchner:

I can confirm both previous confirmations

timja commented 10 years ago

danielbeck:

Working on a fix:
https://github.com/daniel-beck/jenkins/tree/JENKINS-24317-1.576

The fix itself seems to work fine on my test instances, but now tests start failing that should have failed since 1.566


If you're feeling adventurous (and have good backups), you can use the build I created to test whether JENKINS-24356 is a duplicate of this (basically, 1.576 + the current state of the fix for this issue). You can find it linked in a comment to that issue. 100% unsupported, in fact I'll laugh evilly if this breaks your instance.

timja commented 10 years ago

danielbeck:

Posted pull request with the proposed fix for this issue.

timja commented 10 years ago

stony:

Great i hope i takes not so much time to implement it and build a new version.

timja commented 10 years ago

scm_issue_link:

Code changed in jenkins
User: Jesse Glick
Path:
changelog.html
core/src/main/java/hudson/model/User.java
test/src/test/java/hudson/model/UserTest.java
test/src/test/resources/hudson/model/UserTest/migration.zip
http://jenkins-ci.org/commit/jenkins/088edabb31a90cd607f3c6a3123effce5703c817
Log:
[FIXED JENKINS-24317] Corrected user dir migration code from JENKINS-23872.
Adapted from #1375 by @daniel-beck: omitting change to User construction, and adding test.

Compare: https://github.com/jenkinsci/jenkins/compare/3daa6a97b026...088edabb31a9

timja commented 10 years ago

scm_issue_link:

Code changed in jenkins
User: Jesse Glick
Path:
changelog.html
core/src/main/java/hudson/model/User.java
test/src/test/java/hudson/model/UserTest.java
test/src/test/resources/hudson/model/UserTest/migration.zip
http://jenkins-ci.org/commit/jenkins/bce92ec53ddefb7d5105f3f82af96ee954467bdd
Log:
[FIXED JENKINS-24317] Corrected user dir migration code from JENKINS-23872.
Adapted from #1375 by @daniel-beck: omitting change to User construction, and adding test.
(cherry picked from commit 088edabb31a90cd607f3c6a3123effce5703c817)

Conflicts:
changelog.html

timja commented 10 years ago

jglick:

Fixing in trunk, and backporting to rc so it goes into 1.577 as well.

timja commented 10 years ago

dogfood:

Integrated in jenkins_main_trunk #3639
[FIXED JENKINS-24317] Corrected user dir migration code from JENKINS-23872. (Revision 088edabb31a90cd607f3c6a3123effce5703c817)

Result = SUCCESS
Jesse Glick : 088edabb31a90cd607f3c6a3123effce5703c817
Files :

timja commented 10 years ago

scm_issue_link:

Code changed in jenkins
User: Daniel Beck
Path:
changelog.html
http://jenkins-ci.org/commit/jenkins/4c0cfe40c9ebbea81bf2b8a6931cda3513be1bfe
Log:
Noting RC merge of JENKINS-24316, JENKINS-24317

timja commented 10 years ago

danielbeck:

The fix will be in 1.577, scheduled to be released this weekend or so.

timja commented 10 years ago

dogfood:

Integrated in jenkins_main_trunk #3646
[FIXED JENKINS-24317] Corrected user dir migration code from JENKINS-23872. (Revision bce92ec53ddefb7d5105f3f82af96ee954467bdd)

Result = SUCCESS
Jesse Glick : bce92ec53ddefb7d5105f3f82af96ee954467bdd
Files :

timja commented 10 years ago

scm_issue_link:

Code changed in jenkins
User: tfennelly
Path:
test/src/test/java/hudson/model/UserTest.java
http://jenkins-ci.org/commit/jenkins/80f78d573267b69a0bf3e7cbb2f7b4741974d94d
Log:
Fixing dir listing in test to not be case sensitive (related to JENKINS-24317)

timja commented 10 years ago

scm_issue_link:

Code changed in jenkins
User: Jesse Glick
Path:
test/src/test/java/hudson/model/UserTest.java
http://jenkins-ci.org/commit/jenkins/bdc91654f68145759c1331ab3875b4311386fde8
Log:
JENKINS-24317 Amending 80f78d573267b69a0bf3e7cbb2f7b4741974d94d.
If we are running on a case-insensitive FS, the test makes no sense because migration would never even be attempted to begin with.

timja commented 10 years ago

dogfood:

Integrated in jenkins_main_trunk #3656
JENKINS-24317 Amending 80f78d573267b69a0bf3e7cbb2f7b4741974d94d. (Revision bdc91654f68145759c1331ab3875b4311386fde8)

Result = SUCCESS
Jesse Glick : bdc91654f68145759c1331ab3875b4311386fde8
Files :

timja commented 7 years ago

doronshai:

Issue is reoccurring when working with
Jenkins 2.19.4 / 2.19.1 / 2.7.1
Assembla Auth Plugin 1.11
Credentials Plugin 2.1.10
Ubuntu 16.04 LTS

timja commented 7 years ago

danielbeck:

doronshai What exactly is reoccurring? A bit more information please if you're reopening an issue that was resolved more than a hundred releases ago.

timja commented 7 years ago

doronshai:

when using api/xml for build url, i get IOException: Failed to write author ERROR with this log
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.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.doXml(Api.java:100)
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.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.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 org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:206)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
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.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:86)
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)
... 98 more
Caused by: java.lang.NullPointerException
at com.assembla.jenkinsci.plugin.AssemblaAuthenticationToken.getUserByUsername(AssemblaAuthenticationToken.java:86)
at com.assembla.jenkinsci.plugin.AssemblaSecurityRealm.loadUserByUsername(AssemblaSecurityRealm.java:352)
at hudson.model.User$UserIDCanonicalIdResolver.resolveCanonicalId(User.java:1050)
at hudson.model.User.get(User.java:395)
at hudson.model.User.get(User.java:364)
at hudson.plugins.git.GitChangeSet.findOrCreateUser(GitChangeSet.java:379)
at hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:448)
... 104 more

timja commented 7 years ago

danielbeck:

Entirely different issue specific to assembla-auth plugin (as is to be expected after two years without other negative feedback).

https://app.assembla.com/spaces/assembla-oss/git/source/master/src/main/java/com/assembla/jenkinsci/plugin/AssemblaAuthenticationToken.java

Looks to me like the users property in this class is never actually set and therefore always null.

timja commented 2 years ago

[Originally duplicated by: JENKINS-24393]

timja commented 2 years ago

[Originally duplicated by: JENKINS-24336]

timja commented 2 years ago

[Originally duplicated by: JENKINS-24350]

timja commented 2 years ago

[Originally duplicated by: JENKINS-24356]