This is an automated email from the ASF dual-hosted git repository.

kfaraz pushed a commit to branch 31.0.0
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/31.0.0 by this push:
     new 2b98facdc48 MSQ WorkerResource: Fix timeout handler for 
httpGetChannelData. (#17328) (#17330)
2b98facdc48 is described below

commit 2b98facdc4872edc13d1cdac71b4e3761e89fec8
Author: Abhishek Agarwal <[email protected]>
AuthorDate: Fri Oct 11 18:31:01 2024 +0530

    MSQ WorkerResource: Fix timeout handler for httpGetChannelData. (#17328) 
(#17330)
    
    The timeout handler should fire if the response has not been handled yet
    (i.e. if responseResolved was previously false). However, it erroneously
    fires only if the response *was* handled. This causes HTTP 500 errors if
    the timeout actually does fire. The timeout is 30 seconds, which can be
    hit during pipelined queries, if an earlier stage of the query hasn't
    produced its first frame within 30 seconds.
    
    This fixes a regression introduced in #17140.
    
    Co-authored-by: Gian Merlino <[email protected]>
---
 .../src/main/java/org/apache/druid/msq/rpc/WorkerResource.java    | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git 
a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/rpc/WorkerResource.java
 
b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/rpc/WorkerResource.java
index 20758883ddb..fd6207662af 100644
--- 
a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/rpc/WorkerResource.java
+++ 
b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/rpc/WorkerResource.java
@@ -120,12 +120,10 @@ public class WorkerResource
           public void onTimeout(AsyncEvent event)
           {
             if (responseResolved.compareAndSet(false, true)) {
-              return;
+              HttpServletResponse response = (HttpServletResponse) 
asyncContext.getResponse();
+              response.setStatus(HttpServletResponse.SC_OK);
+              event.getAsyncContext().complete();
             }
-
-            HttpServletResponse response = (HttpServletResponse) 
asyncContext.getResponse();
-            response.setStatus(HttpServletResponse.SC_OK);
-            event.getAsyncContext().complete();
           }
 
           @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to