github-actions[bot] commented on code in PR #69182:
URL: https://github.com/apache/doris/pull/69182#discussion_r4293045573
##########
fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java:
##########
@@ -119,6 +119,10 @@ public Object query_plan(
try {
String postContent = HttpUtils.getBody(request);
+ if ("true".equals(request.getParameter("forward")) &&
checkForwardToMaster(request)) {
+ // Use POST internally so forwarding a GET request preserves
the SQL body.
+ return forwardToMaster(request, postContent, "POST");
Review Comment:
[P2] Relay large opaque plans without the default Jackson string limit
The new hop parses the master's response with `RestTemplate.exchange(...,
Object.class)`. Its default Jackson 2.21.5 reader caps individual JSON strings
at 20,000,000 characters. For example, a supported single-table query `select
k1, '<16,000,000 ASCII characters>' AS pad from db.t` fits the 100 MiB HTTP
request limit, but its literal is serialized into `TPlanFragment`, making
`opaqued_query_plan` exceed 21.3 million Base64 characters. Direct/local
planning can return that plan; forwarding instead catches the response parse
failure and returns a common error. Relay the response without reparsing the
opaque payload, or configure parsing limits consistent with valid plan sizes,
and add a large-plan response case. The default limit is defined in [Jackson
2.21.5](https://github.com/FasterXML/jackson-core/blob/jackson-core-2.21.5/src/main/java/com/fasterxml/jackson/core/StreamReadConstraints.java#L61).
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]