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

Form too large if there are many patchsets in the selection list (manual trigger)

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      java.lang.IllegalStateException: Form too large 4763443>200000
      at org.eclipse.jetty.server.Request.extractParameters(Request.java:352)
      at org.eclipse.jetty.server.Request.getParameterNames(Request.java:813)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:67)
      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 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: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.content(AbstractHttpConnection.java:960)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      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:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:724)

        Attachments

          Issue Links

            Activity

            Hide
            pedersen Björn Pedersen added a comment - - edited

            Possible solution for the too large form:

            use two forms in src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly

            One for the table with empty target (and no submit button)
            One for the submitButton and the hidden selectedIds input. Then only selected changes will get sent.

            Possible solution to only show most recent patchsets:

            add a flag in the search form and pre-filter the ajax reponse on the server side ( call queryJava(queryString, false , true ,false, false) instead of queryJava(queryString, true , true ,false, false)

            Show
            pedersen Björn Pedersen added a comment - - edited Possible solution for the too large form: use two forms in src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly One for the table with empty target (and no submit button) One for the submitButton and the hidden selectedIds input. Then only selected changes will get sent. Possible solution to only show most recent patchsets: add a flag in the search form and pre-filter the ajax reponse on the server side ( call queryJava(queryString, false , true ,false, false) instead of queryJava(queryString, true , true ,false, false)
            Hide
            rin_ne rin_ne added a comment -
            • Pagenation using limit and resume_sortkey
            • Increase MaxPermSize for JVM
            • Improve query string to narrow down the result
            Show
            rin_ne rin_ne added a comment - Pagenation using limit and resume_sortkey Disable manual trigger then install the below plugin to Gerrit https://github.com/rinrinne/gerrit-raise-patch Increase MaxPermSize for JVM Improve query string to narrow down the result
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: rinrinne
            Path:
            src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction.java
            src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-allPatchSets.html
            src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-allPatchSets_ja.html
            src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly
            http://jenkins-ci.org/commit/gerrit-trigger-plugin/8a9839ce165620fd045d062e897c5ca186a52fb9
            Log:
            Include the latest patchset only in manual trigger page

            Gerrit search in manual trigger page shows all patchsets in a change.
            But session needs much memory if result has many rows.
            It causes poor PermGen space.

            This patch adds a feature that includes the latest patchset only in
            search result.

            Fix for JENKINS-21064

            Task-Url: https://issues.jenkins-ci.org/browse/JENKINS-21064

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: rinrinne Path: src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction.java src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-allPatchSets.html src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-allPatchSets_ja.html src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly http://jenkins-ci.org/commit/gerrit-trigger-plugin/8a9839ce165620fd045d062e897c5ca186a52fb9 Log: Include the latest patchset only in manual trigger page Gerrit search in manual trigger page shows all patchsets in a change. But session needs much memory if result has many rows. It causes poor PermGen space. This patch adds a feature that includes the latest patchset only in search result. Fix for JENKINS-21064 Task-Url: https://issues.jenkins-ci.org/browse/JENKINS-21064
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Björn Pedersen
            Path:
            src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly
            http://jenkins-ci.org/commit/gerrit-trigger-plugin/4ce142704b59319521a91801b9ca7741fe61b05d
            Log:
            Only send selected change data back to the server

            Use a separate form for the submit, containing only
            the hidden field that is used by the serverside code.

            Fixes: JENKINS-21064

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Björn Pedersen Path: src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly http://jenkins-ci.org/commit/gerrit-trigger-plugin/4ce142704b59319521a91801b9ca7741fe61b05d Log: Only send selected change data back to the server Use a separate form for the submit, containing only the hidden field that is used by the serverside code. Fixes: JENKINS-21064
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            src/java/winstone/Launcher.java
            src/java/winstone/cmdline/Option.java
            http://jenkins-ci.org/commit/winstone/9ae4206d85863b1f478bf21aa1a80a9111c66722
            Log:
            [FIXED JENKINS-20327][FIXED JENKINS-23221][FIXED JENKINS-24804][FIXED JENKINS-21064] java.lang.IllegalStateException: Form too large

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/java/winstone/Launcher.java src/java/winstone/cmdline/Option.java http://jenkins-ci.org/commit/winstone/9ae4206d85863b1f478bf21aa1a80a9111c66722 Log: [FIXED JENKINS-20327] [FIXED JENKINS-23221] [FIXED JENKINS-24804] [FIXED JENKINS-21064] java.lang.IllegalStateException: Form too large

              People

              • Assignee:
                rsandell rsandell
                Reporter:
                pedersen Björn Pedersen
              • Votes:
                1 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: