github-actions[bot] commented on code in PR #65290:
URL: https://github.com/apache/doris/pull/65290#discussion_r3533137467


##########
regression-test/plugins/plugin_compaction.groovy:
##########
@@ -138,9 +148,31 @@ Suite.metaClass.trigger_and_wait_compaction = { String 
table_name, String compac
                 def tabletStatus = parseJson(stdout.trim())
                 def oldStatus = 
be_tablet_compaction_status.get("${be_host}-${tablet.TabletId}")
                 // last compaction success/failure time isn't updated, 
indicates compaction is not started(so we treat it as running and wait)
+                def handedOffToBaseCompactionAfterDeleteVersion = false
+                def completedByBaseCompactionAfterDeleteVersion = false
+                if (compaction_type == "cumulative") {
+                    def oldCumulativePoint = 
toLongOrNull(oldStatus["cumulative point"])
+                    def newCumulativePoint = 
toLongOrNull(tabletStatus["cumulative point"])
+                    def lastCumulativeStatus = "${tabletStatus["last 
cumulative status"]}".toLowerCase()
+                    def baseSuccessTimeChanged = oldStatus["last base success 
time"] != tabletStatus["last base success time"]
+                    def cumulativeSuccessTimeChanged =
+                            oldStatus["last cumulative success time"] != 
tabletStatus["last cumulative success time"]
+                    // E-2010 advances the cumulative point and lets base 
compaction handle delete-version rowsets.
+                    // In some timing windows, base success is already visible 
in the cached old status while
+                    // cumulative success advances later, so accept either 
success signal but not failure time alone.
+                    handedOffToBaseCompactionAfterDeleteVersion = 
lastCumulativeStatus.contains("e-2010") &&
+                            oldCumulativePoint != null && newCumulativePoint 
!= null &&
+                            newCumulativePoint > oldCumulativePoint
+                    completedByBaseCompactionAfterDeleteVersion =
+                            handedOffToBaseCompactionAfterDeleteVersion &&
+                            (baseSuccessTimeChanged || 
cumulativeSuccessTimeChanged)

Review Comment:
   This completion check can fire too early in the E-2010 handoff path. In 
Cloud, the handoff is committed as an `EMPTY_CUMULATIVE` job; meta-service 
explicitly treats that as a metadata-only update to the cumulative point/count, 
but it also sets `last_cumu_compaction_time_ms`, which BE exposes as `last 
cumulative success time`. With this `|| cumulativeSuccessTimeChanged`, the 
helper can return right after the empty cumulative handoff, before the base 
compaction that actually merges the delete-version rowsets has run. The 
affected tests inspect rowsets immediately after this helper returns, so this 
reintroduces the flaky early-exit window. Please keep this fast path tied to a 
base-compaction completion signal, or add another rowset/base-completion check 
before accepting cumulative success time here.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to