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

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


The following commit(s) were added to refs/heads/master by this push:
     new cdaa6883680 Task queue UI: surface debug tables (#16968)
cdaa6883680 is described below

commit cdaa68836803589363f75edc5997ab38b01a354f
Author: Kartik Khare <[email protected]>
AuthorDate: Wed Oct 8 11:45:26 2025 -0700

    Task queue UI: surface debug tables (#16968)
---
 .../src/main/resources/app/pages/TaskQueue.tsx     | 28 ++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/pinot-controller/src/main/resources/app/pages/TaskQueue.tsx 
b/pinot-controller/src/main/resources/app/pages/TaskQueue.tsx
index 380e9ee87b6..c5eafe93a4a 100644
--- a/pinot-controller/src/main/resources/app/pages/TaskQueue.tsx
+++ b/pinot-controller/src/main/resources/app/pages/TaskQueue.tsx
@@ -18,7 +18,7 @@
  */
 
 import React, { useEffect, useState } from 'react';
-import { get, map } from 'lodash';
+import { get } from 'lodash';
 import { TableData } from 'Models';
 import { Grid, makeStyles } from '@material-ui/core';
 import SimpleAccordion from '../components/SimpleAccordion';
@@ -66,9 +66,33 @@ const TaskQueue = (props) => {
     setFetching(true);
     const taskInfoRes = await PinotMethodUtils.getTaskInfo(taskType);
     const tablesResponse:any = await PinotMethodUtils.getTableData({ taskType 
});
+    const responseTables = get(tablesResponse, 'tables', []);
+    const initialTables = Array.isArray(responseTables)
+      ? responseTables.filter((table): table is string => typeof table === 
'string')
+      : [];
+    const tableSet = new Set<string>(initialTables);
+
+    try {
+      const debugResponse:any = await 
PinotMethodUtils.getTaskTypeDebugData(taskType);
+      Object.values(debugResponse || {}).forEach((taskDebug: any) => {
+        (get(taskDebug, 'subtaskInfos', []) || []).forEach((subtask: any) => {
+          const taskConfig = get(subtask, 'taskConfig', {});
+          const tableName = get(taskConfig, 'tableName') || get(taskConfig, 
'configs.tableName');
+          if (typeof tableName === 'string') {
+            tableSet.add(tableName);
+          }
+        });
+      });
+    } catch (error) {
+      // Debug endpoint might be disabled; ignore and fall back to configured 
tables only.
+      // eslint-disable-next-line no-console
+      console.warn(`Unable to retrieve adhoc task tables for ${taskType}:`, 
error);
+    }
+
     setTaskInfo(taskInfoRes);
     setTables((prevState): TableData => {
-      const _records = map(get(tablesResponse, 'tables', []), table => 
[table]);
+      const tableList = Array.from(tableSet).sort();
+      const _records = tableList.map(table => [table]);
       return { ...prevState, records: _records };
     });
     setFetching(false);


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

Reply via email to