You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we want to intercept full response body before sending response to client and upstream response body size more then totally specified in proxy_buffers, nginx-clojure deadlocked proccesing response, e.g.:
public class NginxSampleBodyFilter implents NginxJavaResponseBodyFilter {
public doFilter (..) {
if (!isLast) {
// save data in store
return new Object[] {null, null, null}
}
else {
return new Object[] {200, headers, body};
}
}
}
This problem solved by setting chain->buf->pos = chain->buf->last in ngx_http_clojure_body_filter, but this may cause problem which is solved in:
2019-08-03 22:05:01[error][3610][main]server unhandled exception!
java.nio.BufferOverflowException
at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:206)
at my.MyStringFacedJavaBodyFilter.decodeToString(MyStringFacedJavaBodyFilter.java:61)
at my.MyStringFacedJavaBodyFilter.doFilter(MyStringFacedJavaBodyFilter.java:32)
at nginx.clojure.java.NginxJavaHandler.process(NginxJavaHandler.java:114)
at nginx.clojure.NginxSimpleHandler.handleRequest(NginxSimpleHandler.java:187)
at nginx.clojure.NginxSimpleHandler.execute(NginxSimpleHandler.java:105)
at nginx.clojure.NginxClojureRT.eval(NginxClojureRT.java:1133)
When we want to intercept full response body before sending response to client and upstream response body size more then totally specified in proxy_buffers, nginx-clojure deadlocked proccesing response, e.g.:
public class NginxSampleBodyFilter implents NginxJavaResponseBodyFilter {
public doFilter (..) {
if (!isLast) {
// save data in store
}
else {
return new Object[] {200, headers, body};
}
}
}
This problem solved by setting chain->buf->pos = chain->buf->last in ngx_http_clojure_body_filter, but this may cause problem which is solved in:
1129712#diff-7fc78c16eb92158b28e5f28bd4ce872b
The text was updated successfully, but these errors were encountered: