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

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


The following commit(s) were added to refs/heads/master by this push:
     new b6a6c973ab6 Wait for SQL table visibility in embedded tests. (#19095)
b6a6c973ab6 is described below

commit b6a6c973ab63ce8a846b88a087eed6d2195d652c
Author: Gian Merlino <[email protected]>
AuthorDate: Thu Mar 5 12:16:04 2026 -0800

    Wait for SQL table visibility in embedded tests. (#19095)
    
    * Wait for SQL table visibility in embedded tests.
    
    Several embedded tests wait for segment/schemaCache/refresh/count as a
    proxy for when a datasource is queryable via SQL. However, this metric
    is emitted before the SQL table is set up. This creates a window where
    SQL queries can fail with "Object 'datasource' not found".
    
    This patch waits for segment/schemaCache/rowSignature/column/count,
    which is emitted after a SQL table is set up and visible. This is done
    either as a replacement for segment/schemaCache/refresh/count (if we
    only care about table visibility) or in addition to it (if we also want
    to wait for a specific number of segments to be detected).
    
    * Fix import order.
    
    * Fix import order.
---
 .../apache/druid/testing/embedded/indexing/IngestionSmokeTest.java  | 6 ++++++
 .../testing/embedded/indexing/StreamIndexDataFormatsTestBase.java   | 3 ++-
 .../druid/testing/embedded/msq/EmbeddedMSQRealtimeQueryTest.java    | 3 ++-
 .../testing/embedded/server/HttpEmitterEventCollectorTest.java      | 6 ++++++
 .../java/org/apache/druid/testing/embedded/EmbeddedClusterApis.java | 5 +++++
 5 files changed, 21 insertions(+), 2 deletions(-)

diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/IngestionSmokeTest.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/IngestionSmokeTest.java
index fdc90cab49a..2c770e4828d 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/IngestionSmokeTest.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/IngestionSmokeTest.java
@@ -40,6 +40,7 @@ import org.apache.druid.java.util.common.StringUtils;
 import 
org.apache.druid.metadata.storage.postgresql.PostgreSQLMetadataStorageModule;
 import org.apache.druid.query.DruidMetrics;
 import org.apache.druid.query.http.SqlTaskStatus;
+import org.apache.druid.segment.metadata.Metric;
 import org.apache.druid.tasklogs.TaskLogStreamer;
 import org.apache.druid.testing.embedded.EmbeddedBroker;
 import org.apache.druid.testing.embedded.EmbeddedCoordinator;
@@ -402,6 +403,11 @@ public class IngestionSmokeTest extends 
EmbeddedClusterTestBase
                       .hasDimension(DruidMetrics.DATASOURCE, dataSource),
         agg -> agg.hasSumAtLeast(numSegments)
     );
+    eventCollector.latchableEmitter().waitForEvent(
+        event -> event.hasMetricName(Metric.SCHEMA_ROW_SIGNATURE_COLUMN_COUNT)
+                      .hasService("druid/broker")
+                      .hasDimension(DruidMetrics.DATASOURCE, dataSource)
+    );
   }
 
   /**
diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexDataFormatsTestBase.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexDataFormatsTestBase.java
index 0d28583f997..18d3f512374 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexDataFormatsTestBase.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexDataFormatsTestBase.java
@@ -45,6 +45,7 @@ import 
org.apache.druid.data.input.protobuf.SchemaRegistryBasedProtobufBytesDeco
 import org.apache.druid.indexing.overlord.supervisor.SupervisorSpec;
 import org.apache.druid.java.util.common.parsers.JSONPathSpec;
 import org.apache.druid.query.DruidMetrics;
+import org.apache.druid.segment.metadata.Metric;
 import org.apache.druid.testing.embedded.EmbeddedBroker;
 import org.apache.druid.testing.embedded.EmbeddedCoordinator;
 import org.apache.druid.testing.embedded.EmbeddedDruidCluster;
@@ -552,7 +553,7 @@ public abstract class StreamIndexDataFormatsTestBase 
extends EmbeddedClusterTest
     );
     // Wait for the schema cache to refresh for the datasource under test
     broker.latchableEmitter().waitForEvent(
-        event -> event.hasMetricName("segment/schemaCache/refresh/count")
+        event -> event.hasMetricName(Metric.SCHEMA_ROW_SIGNATURE_COLUMN_COUNT)
                       .hasDimension(DruidMetrics.DATASOURCE, dataSource)
     );
 
diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/EmbeddedMSQRealtimeQueryTest.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/EmbeddedMSQRealtimeQueryTest.java
index 100570f604c..9031ac12705 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/EmbeddedMSQRealtimeQueryTest.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/EmbeddedMSQRealtimeQueryTest.java
@@ -26,6 +26,7 @@ import 
org.apache.druid.msq.indexing.report.MSQTaskReportPayload;
 import org.apache.druid.query.DruidMetrics;
 import org.apache.druid.query.http.SqlTaskStatus;
 import org.apache.druid.segment.TestIndex;
+import org.apache.druid.segment.metadata.Metric;
 import org.apache.druid.sql.calcite.BaseCalciteQueryTest;
 import org.apache.druid.testing.embedded.EmbeddedBroker;
 import org.apache.druid.testing.embedded.EmbeddedClusterApis;
@@ -149,7 +150,7 @@ public class EmbeddedMSQRealtimeQueryTest extends 
BaseRealtimeQueryTest
         agg -> agg.hasSumAtLeast(totalRows)
     );
     broker.latchableEmitter().waitForEvent(
-        event -> event.hasMetricName("segment/schemaCache/refresh/count")
+        event -> event.hasMetricName(Metric.SCHEMA_ROW_SIGNATURE_COLUMN_COUNT)
                       .hasDimension(DruidMetrics.DATASOURCE, dataSource)
     );
   }
diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/server/HttpEmitterEventCollectorTest.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/server/HttpEmitterEventCollectorTest.java
index 0437f45a2a6..6ed2aa7e161 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/server/HttpEmitterEventCollectorTest.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/server/HttpEmitterEventCollectorTest.java
@@ -22,6 +22,7 @@ package org.apache.druid.testing.embedded.server;
 import org.apache.druid.common.utils.IdUtils;
 import org.apache.druid.indexing.common.task.IndexTask;
 import org.apache.druid.query.DruidMetrics;
+import org.apache.druid.segment.metadata.Metric;
 import org.apache.druid.testing.embedded.EmbeddedBroker;
 import org.apache.druid.testing.embedded.EmbeddedCoordinator;
 import org.apache.druid.testing.embedded.EmbeddedDruidCluster;
@@ -89,6 +90,11 @@ public class HttpEmitterEventCollectorTest extends 
EmbeddedClusterTestBase
                       .hasService("druid/broker"),
         agg -> agg.hasSumAtLeast(10)
     );
+    eventCollector.latchableEmitter().waitForEvent(
+        event -> event.hasMetricName(Metric.SCHEMA_ROW_SIGNATURE_COLUMN_COUNT)
+                      .hasDimension(DruidMetrics.DATASOURCE, dataSource)
+                      .hasService("druid/broker")
+    );
 
     cluster.callApi().verifySqlQuery("SELECT * FROM %s", dataSource, 
Resources.InlineData.CSV_10_DAYS);
   }
diff --git 
a/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedClusterApis.java
 
b/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedClusterApis.java
index 1ed70fdbdca..edbef9207bb 100644
--- 
a/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedClusterApis.java
+++ 
b/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedClusterApis.java
@@ -44,6 +44,7 @@ import org.apache.druid.query.DruidMetrics;
 import org.apache.druid.query.http.ClientSqlQuery;
 import org.apache.druid.rpc.indexing.OverlordClient;
 import org.apache.druid.segment.TestHelper;
+import org.apache.druid.segment.metadata.Metric;
 import org.apache.druid.server.metrics.LatchableEmitter;
 import org.apache.druid.sql.http.ResultFormat;
 import org.apache.druid.timeline.DataSegment;
@@ -344,6 +345,10 @@ public class EmbeddedClusterApis implements 
EmbeddedResource
           agg -> agg.hasSumAtLeast(numTombstones)
       );
     }
+    broker.latchableEmitter().waitForEvent(
+        event -> event.hasMetricName(Metric.SCHEMA_ROW_SIGNATURE_COLUMN_COUNT)
+                      .hasDimension(DruidMetrics.DATASOURCE, dataSource)
+    );
   }
 
   /**


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

Reply via email to