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


##########
regression-test/plugins/plugin_compaction.groovy:
##########
@@ -177,9 +181,27 @@ Suite.metaClass.trigger_and_wait_compaction = { String 
table_name, String compac
                 }
                 def success_time_unchanged = (oldStatus["last 
${compaction_type} success time"] == tabletStatus["last ${compaction_type} 
success time"])
                 def failure_time_unchanged = (oldStatus["last 
${compaction_type} failure time"] == tabletStatus["last ${compaction_type} 
failure time"])
-                def currentCompactionTimestampChanged = 
!success_time_unchanged || !failure_time_unchanged
+                def compactionFailureIgnored =
+                        !failure_time_unchanged && 
isIgnoredCompactionStatus(tabletStatus["last ${compaction_type} status"])
+                def baseFailureTimeChanged = 
handedOffToBaseCompactionAfterDeleteVersion &&
+                        oldStatus["last base failure time"] != 
tabletStatus["last base failure time"]
+                def baseFailureIgnored = baseFailureTimeChanged && 
isIgnoredCompactionStatus(tabletStatus["last base status"])
+                if (!running && !handedOffToBaseCompactionAfterDeleteVersion &&
+                        !completedByBaseCompactionAfterDeleteVersion &&
+                        success_time_unchanged && !failure_time_unchanged && 
!compactionFailureIgnored) {

Review Comment:
   This now turns any failure timestamp change into a hard failure unless the 
caller explicitly passes that status in `ignored_errors`, but Doris also 
records benign no-op compaction outcomes in the same failure timestamp fields. 
For example, a manual full compaction with no suitable input rowsets returns 
`FULL_NO_SUITABLE_VERSION` (`E-2008`): `FullCompaction::prepare_compact()` 
records the last full status/failure time, while 
`Tablet::prepare_compaction_and_calculate_permits()` then treats that status as 
OK with zero permits and no compaction work. Existing callers of 
`trigger_and_wait_compaction(table, "full")` do not pass `ignored_errors`, so a 
valid no-op full compaction can now fail here as `compaction failed`. Please 
keep the helper's wait-phase classification aligned with the BE no-op statuses, 
for example by treating the same no-suitable status codes as non-fatal instead 
of throwing.
   



-- 
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