Project

General

Profile

Actions

Bug #12023

closed

Jetty error with stack trace: "java.lang.IllegalStateException: Form too many keys"

Added by François ARMAND about 6 years ago. Updated about 6 years ago.

Status:
Rejected
Priority:
N/A
Assignee:
-
Category:
Performance and scalability
Target version:
Severity:
Minor - inconvenience | misleading | easy workaround
UX impact:
User visibility:
Operational - other Techniques | Technique editor | Rudder settings
Effort required:
Priority:
32
Name check:
Fix check:
Regression:

Description

When editing a directive with a lot of parameter, I got the stack trace below.

It seems to be a Jetty problem, when the request is too big: https://stackoverflow.com/questions/22998834/webapp-with-embedded-jetty-giving-exception

The workaround seems to be to edit `/etc/default/rudder-jetty`

And update `JAVA_OPTIONS` to add "maxFormKey" Jetty parameter (documented here: http://www.eclipse.org/jetty/documentation/9.3.x/configuring-form-size.html)

JAVA_OPTIONS="(...existing options...) -Dorg.eclipse.jetty.server.Request.maxFormKeys=2000" 
[2018-01-22 15:14:03] ERROR net.liftweb.http.LiftRules - Exception being returned to browser when processing /lift/ajax/F258035444682AVVN5G-20/
java.lang.IllegalStateException: Form too many keys
    at org.eclipse.jetty.util.UrlEncoded.decodeUtf8To(UrlEncoded.java:518)
    at org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:611)
    at org.eclipse.jetty.server.Request.extractParameters(Request.java:298)
    at org.eclipse.jetty.server.Request.getParameterNames(Request.java:731)
    at javax.servlet.ServletRequestWrapper.getParameterNames(ServletRequestWrapper.java:189)
    at javax.servlet.ServletRequestWrapper.getParameterNames(ServletRequestWrapper.java:189)
    at net.liftweb.http.provider.servlet.HTTPRequestServlet.params$lzycompute(HTTPRequestServlet.scala:80)
    at net.liftweb.http.provider.servlet.HTTPRequestServlet.params(HTTPRequestServlet.scala:80)
    at net.liftweb.http.Req$.$anonfun$apply$14(Req.scala:493)
    at net.liftweb.http.AvoidGAL.thunk$lzycompute(Req.scala:355)
    at net.liftweb.http.AvoidGAL.thunk(Req.scala:355)
    at net.liftweb.http.Req$.$anonfun$apply$26(Req.scala:506)
    at net.liftweb.http.Req.x$49$lzycompute(Req.scala:973)
    at net.liftweb.http.Req.x$49(Req.scala:969)
    at net.liftweb.http.Req.__params$lzycompute(Req.scala:970)
    at net.liftweb.http.Req.__params(Req.scala:970)
    at net.liftweb.http.Req._params(Req.scala:947)
    at net.liftweb.http.Req.params$lzycompute(Req.scala:977)
    at net.liftweb.http.Req.params(Req.scala:977)
    at net.liftweb.http.Req.param(Req.scala:921)
    at net.liftweb.http.LiftServlet.runAjax(LiftServlet.scala:602)
    at net.liftweb.http.LiftServlet.$anonfun$handleAjax$1(LiftServlet.scala:753)
    at net.liftweb.http.LiftServlet.$anonfun$extractVersions$1(LiftServlet.scala:585)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$generateSnapshotRestorer$5(Vars.scala:546)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$generateSnapshotRestorer$4(Vars.scala:545)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$generateSnapshotRestorer$3(Vars.scala:545)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$generateSnapshotRestorer$2(Vars.scala:544)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$generateSnapshotRestorer$1(Vars.scala:543)
    at net.liftweb.http.S$PageStateHolder.runInContext(S.scala:228)
    at net.liftweb.http.RenderVersion$.$anonfun$doWith$3(LiftSession.scala:224)
    at net.liftweb.util.AnyVarTrait.doWith(AnyVar.scala:278)
    at net.liftweb.util.AnyVarTrait.doWith$(AnyVar.scala:274)
    at net.liftweb.util.AnyVar.doWith(AnyVar.scala:91)
    at net.liftweb.http.RenderVersion$.$anonfun$doWith$2(LiftSession.scala:223)
    at scala.Option.map(Option.scala:146)
    at net.liftweb.http.RenderVersion$.$anonfun$doWith$1(LiftSession.scala:219)
    at net.liftweb.common.Full.flatMap(Box.scala:808)
    at net.liftweb.http.RenderVersion$.doWith(LiftSession.scala:218)
    at net.liftweb.http.LiftServlet.extractVersions(LiftServlet.scala:585)
    at net.liftweb.http.LiftServlet.handleAjax(LiftServlet.scala:675)
    at net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:541)
    at net.liftweb.http.LiftServlet$StatefulResponse$.$anonfun$process$3(LiftServlet.scala:385)
    at net.liftweb.http.S.wrapQuery(S.scala:1562)
    at net.liftweb.http.S.$anonfun$_nest2InnerInit$2(S.scala:1729)
    at net.liftweb.http.S.doAround(S.scala:1491)
    at net.liftweb.http.S.$anonfun$_nest2InnerInit$1(S.scala:1717)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S._nest2InnerInit(S.scala:1716)
    at net.liftweb.http.S.$anonfun$_innerInit$5(S.scala:1762)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$withReq$2(S.scala:1773)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.withReq(S.scala:1772)
    at net.liftweb.http.S.withReq$(S.scala:1770)
    at net.liftweb.http.S$.withReq(S.scala:47)
    at net.liftweb.http.S.$anonfun$_innerInit$4(S.scala:1757)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$_innerInit$3(S.scala:1755)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$_innerInit$2(S.scala:1755)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$_innerInit$1(S.scala:1754)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S._innerInit(S.scala:1753)
    at net.liftweb.http.S.$anonfun$_init$7(S.scala:1795)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$_init$6(S.scala:1793)
    at net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:605)
    at net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:591)
    at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:507)
    at net.liftweb.http.S.$anonfun$_init$5(S.scala:1793)
    at net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:605)
    at net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:591)
    at net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:520)
    at net.liftweb.http.S.$anonfun$_init$4(S.scala:1792)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$_init$3(S.scala:1791)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S.$anonfun$_init$2(S.scala:1790)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.S._init(S.scala:1789)
    at net.liftweb.http.S.init(S.scala:1376)
    at net.liftweb.http.S.init$(S.scala:1370)
    at net.liftweb.http.S$.init(S.scala:47)
    at net.liftweb.http.LiftServlet$StatefulResponse$.doSession$1(LiftServlet.scala:385)
    at net.liftweb.http.LiftServlet$StatefulResponse$.process(LiftServlet.scala:394)
    at net.liftweb.http.LiftServlet.stepThroughPipeline$1(LiftServlet.scala:428)
    at net.liftweb.http.LiftServlet.doService(LiftServlet.scala:436)
    at net.liftweb.http.LiftServlet.$anonfun$service$2(LiftServlet.scala:157)
    at net.liftweb.util.TimeHelpers.calcTime(TimeHelpers.scala:427)
    at net.liftweb.util.TimeHelpers.calcTime$(TimeHelpers.scala:425)
    at net.liftweb.util.Helpers$.calcTime(Helpers.scala:34)
    at net.liftweb.util.TimeHelpers.logTime(TimeHelpers.scala:446)
    at net.liftweb.util.TimeHelpers.logTime$(TimeHelpers.scala:445)
    at net.liftweb.util.Helpers$.logTime(Helpers.scala:34)
    at net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:156)
    at net.liftweb.http.LiftServlet.service(LiftServlet.scala:167)
    at net.liftweb.http.provider.HTTPProvider.$anonfun$service$7(HTTPProvider.scala:72)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.URLRewriter$.doWith(Req.scala:1345)
    at net.liftweb.http.provider.HTTPProvider.$anonfun$service$4(HTTPProvider.scala:71)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.provider.HTTPProvider.$anonfun$service$3(HTTPProvider.scala:70)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.provider.HTTPProvider.service(HTTPProvider.scala:60)
    at net.liftweb.http.provider.HTTPProvider.service$(HTTPProvider.scala:55)
    at net.liftweb.http.LiftFilter.service(LiftServlet.scala:1064)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.$anonfun$doFilter$3(ServletFilterProvider.scala:83)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.handleLoan$1(ServletFilterProvider.scala:59)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.handleLoanWrappers(ServletFilterProvider.scala:63)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.$anonfun$doFilter$2(ServletFilterProvider.scala:82)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$6(Vars.scala:611)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$5(Vars.scala:610)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$4(Vars.scala:610)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$3(Vars.scala:609)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:608)
    at net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:591)
    at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:507)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.$anonfun$doFilter$1(ServletFilterProvider.scala:77)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$6(Vars.scala:611)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$5(Vars.scala:610)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$4(Vars.scala:610)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$3(Vars.scala:609)
    at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    at net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:608)
    at net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:591)
    at net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:520)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.doFilter(ServletFilterProvider.scala:75)
    at net.liftweb.http.provider.servlet.ServletFilterProvider.doFilter$(ServletFilterProvider.scala:69)
    at net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:1064)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:532)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:369)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:464)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:924)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:985)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:236)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:748)
Actions #1

Updated by François ARMAND about 6 years ago

  • Description updated (diff)
Actions #2

Updated by François ARMAND about 6 years ago

  • Severity set to Minor - inconvenience | misleading | easy workaround
  • User visibility set to Operational - other Techniques | Technique editor | Rudder settings
  • Priority changed from 0 to 32
Actions #3

Updated by Benoît PECCATTE about 6 years ago

  • Status changed from New to Rejected

Worked around (in description).

We should reopen it if this becomes recurrent.

Actions #4

Updated by François ARMAND about 6 years ago

  • Subject changed from Stack trace: "java.lang.IllegalStateException: Form too many keys" to Jetty error with stack trace: "java.lang.IllegalStateException: Form too many keys"
Actions

Also available in: Atom PDF