[ 
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)

Reply via email to