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

NullPointerException and "pull request doesn't exist" when triggering build via GitHub hooks

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • ghprb-plugin
    • None

      Just upgraded to v1.8 from 1.5.1.

      We decided to change from the cron to using the hook/callback. It worked fine when comments were added such as "retest this please" (issue_comment hook), but when a new commit is pushed (pull_request hook, synchronize action), it isn't triggering a new build. Closing and opening the pull request does trigger a new build.

      I checked the logs and there seems to be a null pointer exception. I haven't had time to really debug it any further yet.

      May 08, 2013 1:57:36 AM org.jenkinsci.plugins.ghprb.GhprbRootAction doIndex
      INFO: Got payload event: pull_request
      May 08, 2013 1:57:36 AM org.kohsuke.stapler.compression.CompressionFilter reportException
      WARNING: Untrapped servlet exception
      javax.servlet.ServletException: java.lang.NullPointerException
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:719)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      	at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
      	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:722)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	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:135)
      	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 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      	at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333)
      	at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      	at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:197)
      	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
      	at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1771)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      	at java.lang.Thread.run(Thread.java:722)
      Caused by: java.lang.NullPointerException
      	at org.kohsuke.github.GHIssue.getApiRoute(GHIssue.java:204)
      	at org.kohsuke.github.GHIssue.access$000(GHIssue.java:41)
      	at org.kohsuke.github.GHIssue$1.iterator(GHIssue.java:193)
      	at org.kohsuke.github.PagedIterable.asList(PagedIterable.java:19)
      	at org.kohsuke.github.GHIssue.getComments(GHIssue.java:184)
      	at org.jenkinsci.plugins.ghprb.GhprbPullRequest.checkComments(GhprbPullRequest.java:157)
      	at org.jenkinsci.plugins.ghprb.GhprbPullRequest.check(GhprbPullRequest.java:65)
      	at org.jenkinsci.plugins.ghprb.GhprbRepository.onPullRequestHook(GhprbRepository.java:206)
      	at org.jenkinsci.plugins.ghprb.GhprbRootAction.doIndex(GhprbRootAction.java:62)
      	at sun.reflect.GeneratedMethodAccessor717.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	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$2.dispatch(MetaClass.java:156)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      	... 59 more
      
      May 08, 2013 1:57:36 AM org.jenkinsci.plugins.ghprb.GhprbPullRequest check
      INFO: Pull request builder: pr #74 was updated on SomeOrg/SomeApp at 5/8/13 1:54 AM
      May 08, 2013 1:57:36 AM org.jenkinsci.plugins.ghprb.GhprbRootAction doIndex
      INFO: Got payload event: pull_request
      

      Also, randomly after closing/reopening, adding/deleting some comments, etc... It started telling me that the pull request that the hook was being triggered for didn't exist.

      May 08, 2013 3:21:26 PM org.jenkinsci.plugins.ghprb.GhprbRepository onPullRequestHook
      SEVERE: Pull Request #74 doesnt exist
      May 08, 2013 3:21:26 PM org.jenkinsci.plugins.ghprb.GhprbRootAction doIndex
      INFO: Got payload event: pull_request
      

      Everything appears to be working by simply switching back to the cron strategy (unchecking "Use github hooks for build triggering") for now.

      Once I finish some other work, I'll switch it back to the hook method and try to debug further.

            janinko Honza Brázdil
            evandotpro Evan Coury
            Votes:
            5 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: