[ https://issues.apache.org/jira/browse/ASTERIXDB-2165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16257799#comment-16257799 ]
ASF subversion and git services commented on ASTERIXDB-2165: ------------------------------------------------------------ Commit ed5fc81724d31abbc92eeb60ded2518b91544ad0 in asterixdb's branch refs/heads/master from [~tillw] [ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=ed5fc81 ] [ASTERIXDB-2165] Avoid OOM in QueryServiceServlet - user model changes: no - storage format changes: no - interface change: no Change-Id: I74f61941f2e75e10f2accd6b2e6be6c1c0cd1490 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2150 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Murtadha Hubail <mhub...@apache.org> > OOM in QueryServiceServlet > -------------------------- > > Key: ASTERIXDB-2165 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-2165 > Project: Apache AsterixDB > Issue Type: Bug > Components: *DB - AsterixDB, API - HTTP API > Reporter: Till > Assignee: Till > > The QueryServiceServlet currently materializes the whole response before > returning it. > On large responses this can cause an OutOfMemoryError: > {noformat} > java.lang.OutOfMemoryError: null > at > java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:161) > ~[?:1.8.0_152] > at > java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:155) > ~[?:1.8.0_152] > at > java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125) > ~[?:1.8.0_152] > at > java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) > ~[?:1.8.0_152] > at java.lang.StringBuffer.append(StringBuffer.java:270) ~[?:1.8.0_152] > at java.io.StringWriter.write(StringWriter.java:112) ~[?:1.8.0_152] > at java.io.PrintWriter.write(PrintWriter.java:456) ~[?:1.8.0_152] > at java.io.PrintWriter.write(PrintWriter.java:473) ~[?:1.8.0_152] > at java.io.PrintWriter.print(PrintWriter.java:603) ~[?:1.8.0_152] > at > org.apache.asterix.app.result.ResultPrinter.displayRecord(ResultPrinter.java:187) > ~[asterix-app-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.asterix.app.result.ResultPrinter.print(ResultPrinter.java:224) > ~[asterix-app-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.asterix.api.http.server.ResultUtil.printResults(ResultUtil.java:81) > ~[asterix-app-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.asterix.api.http.server.NCQueryServiceServlet.executeStatement(NCQueryServiceServlet.java:125) > ~[asterix-app-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:413) > ~[asterix-app-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.asterix.api.http.server.QueryServiceServlet.post(QueryServiceServlet.java:97) > [asterix-app-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:91) > [hyracks-http-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > com.couchbase.analytics.servlet.AuthenticatedServlet.handle(AuthenticatedServlet.java:67) > [cbas-server-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:70) > [hyracks-http-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:55) > [hyracks-http-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at > org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:36) > [hyracks-http-1.0.0-cbas-dp4.jar:1.0.0-cbas-dp4] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [?:1.8.0_152] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [?:1.8.0_152] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [?:1.8.0_152] > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152] > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)