Mantis - Resin
Viewing Issue Advanced Details
4999 major always 03-26-12 13:41 05-22-12 15:33
alex  
ferg  
normal  
closed 4.0.27  
fixed  
none    
none 4.0.28  
0004999: keepalive & com.caucho.server.dispatch.BadRequestException: URL or HTTP headers
 com.caucho.server.dispatch.BadRequestException: com.caucho.server.dispatch.BadRequestException: URL or HTTP headers are too long (IP=127.0.0.1)
                           at com.caucho.server.http.HttpRequest.parseRequest(HttpRequest.java:917)
                           at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:803)
                           at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1301)
                           at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1257)
                           at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1241)
                           at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1149)
                           at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:950)
                           at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117)
                           at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93)
                           at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169)
                           at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61)
                           at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
                           at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)
                       Caused by: com.caucho.server.dispatch.BadRequestException: URL or HTTP headers are too long (IP=127.0.0.1)
                           at com.caucho.server.http.HttpRequest.extendHeaderBuffers(HttpRequest.java:1402)
                           at com.caucho.server.http.HttpRequest.fillUrlTail(HttpRequest.java:1347)
                           at com.caucho.server.http.HttpRequest.readRequest(HttpRequest.java:1110)
                           at com.caucho.server.http.HttpRequest.parseRequest(HttpRequest.java:888)
                           ... 12 more

Notes
(0005740)
alex   
04-09-12 13:06   
server/0619
(0005745)
cowan   
04-20-12 13:23   
This occurs on the 2nd request of a keepalive request where the query string is larger than 256 characters. The 1st request is not effected.

In HttpRequest.extendHeaderBuffers, getHttpBufferStore returns null during the 1st request. On the 2nd request of a keep-alive, getHttpBufferStore return a buffer, which then results in throwing the exception.
(0005753)
mate   
05-03-12 02:33   
Seems to have been broken between 4.0.25 and 4.0.27