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

joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 3c5ec0d0d28fd7f124747867266ffd4d1157f80e
Author: Kurt Deschler <[email protected]>
AuthorDate: Tue May 9 09:18:49 2023 -0500

    IMPALA-12129: Handle running queries in query timeline
    
    This patch fixes handling of running queries in the query timeline. An
    additional check was added to skip JSON sections that are not available
    while the query is running. The page refresh was changed to wait until
    End Time is set since Query State can be set to FINISHED for running
    queries.
    
    Testing: Manually tested query in WebUI
    
    Change-Id: I5a426008addc49183af1b317164d5b02d5f8ceec
    Reviewed-on: http://gerrit.cloudera.org:8080/19864
    Reviewed-by: Wenzhe Zhou <[email protected]>
    Tested-by: Impala Public Jenkins <[email protected]>
---
 www/query_timeline.tmpl | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/www/query_timeline.tmpl b/www/query_timeline.tmpl
index 5a46dc41c..6e7d903ea 100644
--- a/www/query_timeline.tmpl
+++ b/www/query_timeline.tmpl
@@ -176,9 +176,9 @@ function collectFromProfile(ignored_arg) {
     // First pass: compute sizes
     profile.child_profiles[2].child_profiles.forEach(function(fp) {
 
-      var cp = fp.child_profiles[0];
-
-      if (cp.event_sequences != undefined) {
+      if (fp.child_profiles != undefined &&
+          fp.child_profiles[0].event_sequences != undefined) {
+        var cp = fp.child_profiles[0];
         var fevents = fp.child_profiles[0].event_sequences[0].events;
 
         // Build list of timestamps that spans instances for each event
@@ -506,8 +506,8 @@ function refresh() {
       if (!profile_available) {
         setTimeout(refresh, 1000);
       } else {
-        if (profile.child_profiles[0].info_strings.find(({key}) => key === 
"Query State").value
-            != "FINISHED") {
+        if (profile.child_profiles[0].info_strings.find(({key}) => key === 
"End Time").value
+            == "") {
           setTimeout(refresh, 1000);
         }
         renderTiming();

Reply via email to