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

Subversion notfiyCommit java.lang.IllegalStateException: STREAMED

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

      After upgrading from 2.263.4 to 2.277.1 our svn post commit hook to notify Jenkins of the commit is no longer working and returning 500 internal server error.

      We use the example script from the plugin page https://plugins.jenkins.io/subversion/ which worked fine before the upgrade.

      The crumb can still be succesfully fetched, but the after the upgrade of Jenkins the POST to the notify url gives a 500 error.

       

      In the jenkins.log the following backtrace can be found for every notifyCommit post:

      2021-03-16 08:33:58.830+0000 [id=30286] WARNING o.e.j.s.h.ContextHandler$Context#log: Error while serving https://jenkins.XXXX.com/subversion/2fd733a0-3386-48e2-9fee-d70c4aa6c381/notifyCommit
      java.lang.IllegalStateException: STREAMED
      at org.eclipse.jetty.server.Request.getReader(Request.java:1194)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at hudson.scm.SubversionRepositoryStatus.doNotifyCommit(SubversionRepositoryStatus.java:96)
      at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
      at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
      Caused: java.lang.reflect.InvocationTargetException
      at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
      at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)
      at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
      at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
      at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:457)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
      at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:457)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
      at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
      at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:248)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:76)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)
      at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
      at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:114)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at jenkins.security.ApiCrumbExclusion.process(ApiCrumbExclusion.java:48)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:127)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:92)
      at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
      at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
      at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at jenkins.security.BasicHeaderProcessor.success(BasicHeaderProcessor.java:135)
      at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:109)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      at org.eclipse.jetty.server.Server.handle(Server.java:516)
      at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
      at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
      at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
      at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
      at java.lang.Thread.run(Thread.java:748)
      2021-03-16 08:33:58.831+0000 [id=30286] WARNING h.i.i.InstallUncaughtExceptionHandler#handleException: Caught unhandled exception with ID e723e59d-470f-4868-8b9c-73215b8975f0
      java.lang.IllegalStateException: STREAMED
      at org.eclipse.jetty.server.Request.getReader(Request.java:1194)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:266)
      at hudson.scm.SubversionRepositoryStatus.doNotifyCommit(SubversionRepositoryStatus.java:96)
      at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
      at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
      at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)
      at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
      at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      Caused: javax.servlet.ServletException
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:816)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
      at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:457)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
      at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:457)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:240)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
      at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
      at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:248)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:76)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)
      at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)
      at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
      at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:114)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at jenkins.security.ApiCrumbExclusion.process(ApiCrumbExclusion.java:48)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:127)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:92)
      at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
      at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
      at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at jenkins.security.BasicHeaderProcessor.success(BasicHeaderProcessor.java:135)
      at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:109)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      at org.eclipse.jetty.server.Server.handle(Server.java:516)
      at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
      at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
      at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
      at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
      at java.lang.Thread.run(Thread.java:748)

          [JENKINS-65132] Subversion notfiyCommit java.lang.IllegalStateException: STREAMED

          Jesse Glick added a comment -

          Automated tests still pass with

          diff --git pom.xml pom.xml
          index 85b3c19..941d4c2 100644
          --- pom.xml
          +++ pom.xml
          @@ -28,7 +28,7 @@ THE SOFTWARE.
             <parent>
               <groupId>org.jenkins-ci.plugins</groupId>
               <artifactId>plugin</artifactId>
          -    <version>4.15</version>
          +    <version>4.17</version>
               <relativePath />
             </parent>
           
          @@ -138,10 +138,11 @@ THE SOFTWARE.
               <revision>2.14.1</revision>
               <changelist>-SNAPSHOT</changelist>
               <gitHubRepo>jenkinsci/subversion-plugin</gitHubRepo>
          -    <jenkins.version>2.222.4</jenkins.version>
          +    <jenkins.version>2.277.1</jenkins.version>
               <java.level>8</java.level>
               <no-test-jar>false</no-test-jar>
               <findbugs.failOnError>false</findbugs.failOnError> <!-- TODO still have 27 left -->
          +    <test>SubversionStepTest#multipleSCMs</test>
             </properties>
           
             <repositories>
          

          though this could be something specific to a Winstone/Jetty update. If you can reproduce in a clean environment you could bisect to the version of Jenkins, and even to a commit in the Jenkins repo. But be aware that this plugin is up for adoption.

          Jesse Glick added a comment - Automated tests still pass with diff --git pom.xml pom.xml index 85b3c19..941d4c2 100644 --- pom.xml +++ pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. <parent> <groupId> org.jenkins-ci.plugins </groupId> <artifactId> plugin </artifactId> - <version> 4.15 </version> + <version> 4.17 </version> <relativePath /> </parent> @@ -138,10 +138,11 @@ THE SOFTWARE. <revision> 2.14.1 </revision> <changelist> -SNAPSHOT </changelist> <gitHubRepo> jenkinsci/subversion-plugin </gitHubRepo> - <jenkins.version> 2.222.4 </jenkins.version> + <jenkins.version> 2.277.1 </jenkins.version> <java.level> 8 </java.level> <no-test-jar> false </no-test-jar> <findbugs.failOnError> false </findbugs.failOnError> <!-- TODO still have 27 left --> + <test> SubversionStepTest#multipleSCMs </test> </properties> <repositories> though this could be something specific to a Winstone/Jetty update. If you can reproduce in a clean environment you could bisect to the version of Jenkins, and even to a commit in the Jenkins repo. But be aware that this plugin is up for adoption.

          Oleg Nenashev added a comment -

          The Jetty handling code is not new though, e.g. JENKINS-24807 where setting POST header allegedly fixes the issue.

          It would be nice to check the webhook payload

           

          Oleg Nenashev added a comment - The Jetty handling code is not new though, e.g.  JENKINS-24807 where setting POST header allegedly fixes the issue. It would be nice to check the webhook payload  

          Mark Huijgen added a comment -

          post data is based on output of '/usr/bin/svnlook changed --revision 37969 /path/to/repo'

           

          Commit hook fetches a crumb
          /usr/bin/wget -http-user=XXhttp-password=XX-auth-no-challenge --output-document - 'https://jenkins.XX.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'

          Then posts the output of the svnlook command with this crumb set in the header:

          /usr/bin/wget -http-user=XX --http-password=XX-auth-no-challenge --header Jenkins-Crumb:f4b0956eec95fa63d97115494f636abf96d2563bc45032a8cd94448be158843b --post-data 'U branches/path/to/changed-file.c' --output-document - --timeout=2 'https://jenkins.XX.com/subversion/2fd733a0-3386-48e2-9fee-d70c4aa6c381/notifyCommit?rev=37969'

           

          However your comment oleg_nenashev  made me think about this and examine this further. It seems that the new Jetty does not like that the Content-Type header is missing.

           

          https://plugins.jenkins.io/subversion/

          Talks first about using the notifyCommit without crumb but with this header set. Then talks about the crumb that it can be added with

          {{--header `wget -q --output-document - \
          'http://server/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'`}}

          {{}}

          Then gives a complete example where the Content-Type header gets omitted:

          This used to work with the previous LTS version, but it seems the new LTS version this no longer works. I now added the Content-Type header and now I'm no longer getting the 500 error but a 200 OK. Still need to test if the notify itself actually triggers a build though. Will report back after testing.

          Looks like the above example on the plugin home page needs a small update.

          Mark Huijgen added a comment - post data is based on output of '/usr/bin/svnlook changed --revision 37969 /path/to/repo'   Commit hook fetches a crumb /usr/bin/wget - http-user=XX http-password=XX -auth-no-challenge --output-document - 'https://jenkins.XX.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)' Then posts the output of the svnlook command with this crumb set in the header: /usr/bin/wget - http-user=XX --http-password=XX -auth-no-challenge --header Jenkins-Crumb:f4b0956eec95fa63d97115494f636abf96d2563bc45032a8cd94448be158843b --post-data 'U branches/path/to/changed-file.c' --output-document - --timeout=2 ' https://jenkins.XX.com/subversion/2fd733a0-3386-48e2-9fee-d70c4aa6c381/notifyCommit?rev=37969'   However your comment oleg_nenashev   made me think about this and examine this further. It seems that the new Jetty does not like that the Content-Type header is missing.   https://plugins.jenkins.io/subversion/ Talks first about using the notifyCommit without crumb but with this header set. Then talks about the crumb that it can be added with {{--header `wget -q --output-document - \ 'http://server/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'`}} {{}} Then gives a complete example where the Content-Type header gets omitted: This used to work with the previous LTS version, but it seems the new LTS version this no longer works. I now added the Content-Type header and now I'm no longer getting the 500 error but a 200 OK. Still need to test if the notify itself actually triggers a build though. Will report back after testing. Looks like the above example on the plugin home page needs a small update.

          Mark Huijgen added a comment -

          I can confirm everything works again after adding the Content-Type header.

          I someone with access to the plugin site can update the example? I modified the notifyCI function like this to add the CRUMB if set with a separate --header option to wget:

          Mark Huijgen added a comment - I can confirm everything works again after adding the Content-Type header. I someone with access to the plugin site can update the example? I modified the notifyCI function like this to add the CRUMB if set with a separate --header option to wget:

          Jesse Glick added a comment -

          Jesse Glick added a comment - Please https://github.com/jenkinsci/subversion-plugin/edit/master/README.md as you see fit!

          Mark Huijgen added a comment - Update README.md [JENKINS-65132] Fix example script for notifyCommit by mhuijgen · Pull Request #253 · jenkinsci/subversion-plugin (github.com)  

            didiez Diego Díez
            mhuijgen Mark Huijgen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: