Scott Ferguson wrote: > Knut Forkalsrud wrote: > >> Dear Cognoscenti, >> We have recently been getting a few requests with abnormal Range >> request headers. For example: >> >> Accept-Language: zh-cn,zh-hk,zh-tw,en-us >> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) >> Accept: */* >> Host: www.mydomain.com >> Connection: Keep-Alive >> Range: bytes=-335544320--1162852624 >> Accept-Encoding: gzip >> X-Forwarded-For: 124.115.0.146 >> >> This results in an exception like this: >> >> java.lang.ArrayIndexOutOfBoundsException >> >> > > Out of curiosity, what's the actual size of the file? And what kind of > application? Just browser download or some kind of fancy streaming client. >
One specific reason I'm curious is because the 4.0.2 benchmarks vs nginx are very, very close even for large static files. (We're already faster for small files.) That may mean we can look at competing in streaming large files directly from Resin. -- Scott > -- Scott > > >> at java.lang.System.arraycopy(Native Method) >> at com.caucho.vfs.WriteStream.write(WriteStream.java:301) >> at >> com.caucho.server.connection.ResponseStream.writeNext(ResponseStream.java:445) >> at >> com.caucho.server.connection.ToByteResponseStream.write(ToByteResponseStream.java:336) >> at >> com.caucho.server.connection.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:67) >> at com.caucho.vfs.ReadStream.writeToStream(ReadStream.java:899) >> at com.caucho.servlets.FileServlet.handleRange(FileServlet.java:498) >> at com.caucho.servlets.FileServlet.service(FileServlet.java:325) >> at >> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) >> at >> com.caucho.server.webapp.NamedDispatcherImpl.forward(NamedDispatcherImpl.java:108) >> at com.mydomain.www.MyServlet.doGet(BaseServlet.java:167) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:114) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) >> at >> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) >> at >> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) >> at >> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) >> at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) >> at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) >> at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730) >> at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649) >> at java.lang.Thread.run(Thread.java:595) >> >> (I'm forwarding the request to the FileServlet). No harm done here, >> the requests seems to fail >> without causing any other side effects, but I'm wondering if the >> FileServlet should handle the >> situation a little more gracefully and give a 4xx response code >> instead of throwing an exception, >> which ends up being a 5xx response code. >> >> This is Resin 3.1.8 btw. >> >> Thanks, >> >> Knut Forkalsrud >> >> >> _______________________________________________ >> resin-interest mailing list >> [email protected] >> http://maillist.caucho.com/mailman/listinfo/resin-interest >> >> > > > > > _______________________________________________ > resin-interest mailing list > [email protected] > http://maillist.caucho.com/mailman/listinfo/resin-interest > > _______________________________________________ resin-interest mailing list [email protected] http://maillist.caucho.com/mailman/listinfo/resin-interest
