gianm commented on a change in pull request #10144:
URL: https://github.com/apache/druid/pull/10144#discussion_r451162265
##########
File path: docs/querying/querying.md
##########
@@ -139,4 +139,5 @@ Possible codes for the *error* field include:
|`Resource limit exceeded`|The query exceeded a configured resource limit
(e.g. groupBy maxResults).|
|`Unauthorized request.`|The query was denied due to security policy. Either
the user was not recognized, or the user was recognized but does not have
access to the requested resource.|
|`Unsupported operation`|The query attempted to perform an unsupported
operation. This may occur when using undocumented features or when using an
incompletely implemented extension.|
+|`Truncated response context`|The response context is an internal data
structure to store intermediate state during query processing. Some of states
are collected from query servers (such as historicals or realtime tasks) and
merged in the Broker. To send those states to the Broker, the query servers
serialize them in the HTTP header and send it together with the stream of
intermediate query result. As the max size of an HTTP header is limited to 7 KB
in Druid, this error can occur if JSON-serialized response context is larger
than the limit.<br/><br/>This error shouldn't happen in most cases. A possible
cause of this error can be too many segments moving (for segment balancing) at
the time when a query is issued which reads lots of segments. You should be
able to see debug logs about missing segments in the historical logs if you are
facing this case.|
Review comment:
Suggested rewording:
> An intermediate response context for the query exceeded the built-in limit
of 7KB.<br /><br/>The response context is an internal data structure that Druid
servers use to share out-of-band information when sending query results to each
other. It is serialized in an HTTP header with a maximum length of 7KB. This
error occurs when an intermediate response context sent from a data server
(like a Historical) to the Broker exceeds this limit.<br/><br/>The response
context is used for a variety of purposes, but the one most likely to generate
a large context is sharing details about segments that move during a query.
That means this error can potentially indicate that a very large number of
segments moved in between the time a Broker issued a query and the time it was
processed on Historicals. This should rarely, if ever, occur during normal
operation.
##########
File path: services/src/main/java/org/apache/druid/cli/CliBroker.java
##########
@@ -102,6 +103,12 @@ public CliBroker()
binder.bindConstant().annotatedWith(Names.named("tlsServicePort")).to(8282);
binder.bindConstant().annotatedWith(PruneLoadSpec.class).to(true);
binder.bindConstant().annotatedWith(PruneLastCompactionState.class).to(true);
+ binder.bindConstant()
Review comment:
It looks like this should work, but why not create a reasonable
ResponseContextConfig and bind it directly to `ResponseContextConfig.class`?
Seems like that would be simpler.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]