abdullah alamoudi has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/1955
Change subject: [ASTERIXDB-2052][OTH] Log failures during close of servlet
response
......................................................................
[ASTERIXDB-2052][OTH] Log failures during close of servlet response
- user model changes: no
- storage format changes: no
- interface changes: no
details:
- Log all failures during close of servlet responses to id source
of memory leak.
Change-Id: Ia0e3f3e6e2f94a31f296b3491a07f624a4fea604
---
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
M
hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedNettyOutputStream.java
2 files changed, 17 insertions(+), 11 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/55/1955/1
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index 1cec616..ed61857 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -62,6 +62,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
+
import io.netty.handler.codec.http.HttpResponseStatus;
public class QueryServiceServlet extends AbstractQueryApiServlet {
@@ -89,7 +90,7 @@
protected void post(IServletRequest request, IServletResponse response) {
try {
handleRequest(getRequestParameters(request), response);
- } catch (IOException e) {
+ } catch (Throwable e) {
// Servlet methods should not throw exceptions
// http://cwe.mitre.org/data/definitions/600.html
GlobalConfig.ASTERIX_LOGGER.log(Level.SEVERE, e.getMessage(), e);
diff --git
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedNettyOutputStream.java
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedNettyOutputStream.java
index 0066b77..23d1095 100644
---
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedNettyOutputStream.java
+++
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedNettyOutputStream.java
@@ -83,19 +83,24 @@
@Override
public void close() throws IOException {
- if (!closed) {
- if (response.isHeaderSent() || response.status() !=
HttpResponseStatus.OK) {
- try {
- flush();
- } finally {
- buffer.release();
+ try {
+ if (!closed) {
+ if (response.isHeaderSent() || response.status() !=
HttpResponseStatus.OK) {
+ try {
+ flush();
+ } finally {
+ buffer.release();
+ }
+ } else {
+ response.fullReponse(buffer);
}
- } else {
- response.fullReponse(buffer);
+ super.close();
}
- super.close();
+ closed = true;
+ } catch (Throwable th) {
+ LOGGER.log(Level.SEVERE, "Failure during close of " +
getClass().getSimpleName(), th);
+ throw th;
}
- closed = true;
}
@Override
--
To view, visit https://asterix-gerrit.ics.uci.edu/1955
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia0e3f3e6e2f94a31f296b3491a07f624a4fea604
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>