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

Matrix project fails to save with 'Form with too many keys' on Jetty 12.x

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None
    • Jenkins 2.462-rc35026.112215163e41 from jakarta branch

      The user dropdown that is available in the top right corner of the page for a logged-in user does not drop down with the Jakarta EE 9 pre-release build while it does drop down with the weekly and the LTS builds.

      Steps to duplicate the problem:

      1. Create a plugins.txt file that lists the plugin versions to install
      2. Create a run-jenkins.sh shell script that downloads Jenkins 2.462-rc35026.112215163e41 and downloads plugins as defined in plugins.txt
      3. Run the run-jenkins.sh shell script and complete the setup wizard by creating a new user, installing no plugins, and setting the URL for the controller
      4. Create a matrix project job with the matrix-multiple-branches-config.xml file as its definition (as jobs/matrix-project/config.xml)
      5. Open the configuration page of the matrix job
      6. Add an additional branch to the job definition by clicking the "Add branch" button
      7. Enter a value for the branch name (I used apache-mina-ssh)
      8. Save the form, confirm that it fails to save with a stack trace

      Expected result

      No stack trace and the save of the form is successful.

      Actual result

      Stack trace is reported:

      java.lang.IllegalStateException: Form with too many keys [1001 > 1000]
              at Jenkins Main ClassLoader//org.eclipse.jetty.util.UrlEncoded.checkMaxKeys(UrlEncoded.java:755)
              at Jenkins Main ClassLoader//org.eclipse.jetty.util.UrlEncoded.decodeUtf8To(UrlEncoded.java:556)
              at Jenkins Main ClassLoader//org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:661)
              at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.Request.extractFormParameters(Request.java:547)
              at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.Request.extractContentParameters(Request.java:499)
              at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.Request.getParameters(Request.java:376)
      Caused: org.eclipse.jetty.http.BadMessageException: 400: Unable to parse form content
              at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.Request.getParameters(Request.java:381)
              at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.Request.getParameterNames(Request.java:1022)
              at Jenkins Main ClassLoader//jakarta.servlet.ServletRequestWrapper.getParameterNames(ServletRequestWrapper.java:166)
              at hudson.security.csrf.CrumbFilter.extractCrumbFromRequest(CrumbFilter.java:167)
      

            basil Basil Crow
            markewaite Mark Waite
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: