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

Jackie-Jiang 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 82ccd9e4255 Fix flaky UpsertTableSegmentPreloadIntegrationTest by 
verifying snapshots only for uploaded segments (#19319)
82ccd9e4255 is described below

commit 82ccd9e4255497fea6c342ecbc1c237293a86870
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Thu Aug 20 09:18:06 2026 -0700

    Fix flaky UpsertTableSegmentPreloadIntegrationTest by verifying snapshots 
only for uploaded segments (#19319)
---
 .../tests/UpsertTableSegmentPreloadIntegrationTest.java        | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java
index 1dd1eb1f242..19f1daca0cf 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java
@@ -217,13 +217,19 @@ public class UpsertTableSegmentPreloadIntegrationTest 
extends BaseClusterIntegra
     // Resume consumption to trigger snapshot
     getOrCreateAdminClient().getTableClient().resumeConsumption(rawTableName, 
null);
 
-    // All the immutable (committed and uploaded) segments should have 
snapshots generated
+    // All the uploaded segments should have snapshots generated. Snapshots 
for the just committed segments are best
+    // effort: the snapshot round triggered by the new consuming segment skips 
a segment without retry when its
+    // segmentLock is still held, e.g. by the committing thread or the 
CONSUMING -> ONLINE state transition. Only the
+    // latest committed segment of each partition is best effort, but this 
test has a single commit cycle, so every
+    // LLC segment is a just committed one, and all of them are excluded from 
the check.
     String realtimeTableName = 
TableNameBuilder.REALTIME.tableNameWithType(rawTableName);
     TestUtils.waitForCondition(aVoid -> {
       for (BaseServerStarter serverStarter : _serverStarters) {
         String segmentDir = 
serverStarter.getConfig().getProperty(Server.CONFIG_OF_INSTANCE_DATA_DIR);
-        File[] files = new File(segmentDir, realtimeTableName).listFiles((dir, 
name) -> name.startsWith(rawTableName));
+        File[] files = new File(segmentDir, realtimeTableName).listFiles(
+            (dir, name) -> name.startsWith(rawTableName) && 
LLCSegmentName.of(name) == null);
         assertNotNull(files);
+        assertEquals(files.length, 3);
         for (File file : files) {
           if (!new File(new File(file, "v3"), 
V1Constants.VALID_DOC_IDS_SNAPSHOT_FILE_NAME).exists()) {
             return false;


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

Reply via email to